小编mne*_*nel的帖子

R:计算组子集的均值

我想计算每个"日"的平均值,但是在一天的一部分时间(时间= 12-14).这段代码对我有用,但我必须输入每一天作为新的代码行,这将达到数百行.

这似乎应该很简单.当分组变量相同但我不想知道当我不想包含当天的所有值时,我很容易做到这一点.有一个更好的方法吗?

sapply(sap[sap$Day==165 & sap$Time %in% c(12,12.1,12.2,12.3,12.4,12.5,13,13.1,13.2,13.3,13.4,13.5, 14), ],mean)

sapply(sap[sap$Day==166 & sap$Time %in% c(12,12.1,12.2,12.3,12.4,12.5,13,13.1,13.2,13.3,13.4,13.5, 14), ],mean)
Run Code Online (Sandbox Code Playgroud)

这是数据的样子:

Day Time    StomCond_Trunc
165 12      33.57189926
165 12.1    50.29437636
165 12.2    35.59876214
165 12.3    24.39879768
Run Code Online (Sandbox Code Playgroud)

aggregate r data.table

7
推荐指数
2
解决办法
3万
查看次数

ggplot2 binwidth在facet_wrap直方图中没有响应

非常感谢有关如何使我的代码或binwidth行为的任何想法.我的数据集包含每隔几个小时"4"和每天"24"收集的带时间戳的数据点.我试图在左边绘制4小时堆积直方图,在右边绘制24小时堆积直方图.因此,我希望右侧的binwidth比左侧binwidth宽6倍.但是我用binwidth尝试的一切都没有用.x轴数据,data3 $ dts似乎是连续的而不是离散的,但也许我做得不对.

关于数据的重要说明:在右侧绘制的数据,小时数= 24,数据的dts值始终为整数.左边的数据,小时= 4数据,具有非整数dts值.

             "dts"  "Yes" "No" "Maybe" "hours"  "days"
"258"   15627.668   8       0   1       4   "7 Days"
"259"   15627.832   13      11  18      4   "7 Days"
"260"   15628       34      47  89      4   "7 Days"
"261"   15628       37      47  90      24  "7 Days"
"262"   15628.168   3       0   1       4   "7 Days"
"40"    15571       345     419 674     24  "90 Days"
"41"    15571.5     91      145 130     4   "90 Days"
"42"    15571.668   158     149 284     4   "90 Days"
"43"    15571.832   96      125 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

7
推荐指数
1
解决办法
2004
查看次数

Excel,VBA:如何将多个变量传递给.OnAction

我试图将多个变量传递给.OnAction调用按钮.我无法找到与多个变量相关的答案,我只能用一个变量来完成.以下是我对一个变量有效的方法:

shpBar.OnAction = "'Button_Click """ & strText & """'"
Run Code Online (Sandbox Code Playgroud)

如何向其中添加另外两个变量(例如VarA和VarB)?

excel vba

7
推荐指数
1
解决办法
5278
查看次数

如何将总和添加到表中并获得R中每个单元格的比例

我试图通过将每行除以行总和得到每个单元格的比例,但是R给了我一个错误说,

data.table $ Country:$ operator对原子向量无效

我怎样才能解决这个问题?另外,如何将整个列和行的总和值添加到data.table?我跑的时候会得到这个值addmargins(data.table),但是我想将这些值附加到我的数据帧中.


这是我的代码:

x = c(40,50,30,30,50)                
y = c(40,20,30,40,45)                              
data.table = rbind(x,y)   
data.table
dimnames(data.table)=list("Country"=c("England","Germany"),"Score"=c("Q-Score","T-score","X-score","Y-score","Z-score"))
addmargins(data.table)
table(data.table$Country,data.table$Score/rowSums(table(data.table&Country,data.table$Score)))
Run Code Online (Sandbox Code Playgroud)

r margin contingency

7
推荐指数
1
解决办法
1万
查看次数

获取R中矩阵列的加权和的最快方法

我需要矩阵每列的加权和.

data <- matrix(1:2e7,1e7,2) # warning large number, will eat up >100 megs of memory
weights <- 1:1e7/1e5
system.time(colSums(data*weights))
system.time(apply(data,2,function(x) sum(x*weights)))
all.equal(colSums(data*weights), apply(data,2,function(x) sum(x*weights)))
Run Code Online (Sandbox Code Playgroud)

通常colSums(data*weights)比应用调用更快.

我经常做这个操作(在一个大矩阵上).因此寻找有关最有效实施的建议.理想情况下,如果我们可以将权重传递给colSums(或rowSums),那就太棒了.

谢谢,感谢任何见解!

r sum weighted

7
推荐指数
1
解决办法
6852
查看次数

找到索引更高的第一个更大的元素

我有两个向量,AB.对于A我想要找到的第一个元素的索引中的每个元素B都更大并且具有更高的索引.长度AB是一样的.

所以对于矢量:

A <- c(10, 5, 3, 4, 7)

B <- c(4, 8, 11, 1, 5)
Run Code Online (Sandbox Code Playgroud)

我想要一个结果向量:

R <- c(3, 3, 5, 5, NA)
Run Code Online (Sandbox Code Playgroud)

当然我可以用两个循环来做,但它很慢,我不知道如何在这种情况下使用apply(),当索引很重要时.我的数据集具有长度为20000的向量,因此在这种情况下速度非常重要.

一些奖金问题:

  1. 如果我有一个数字序列(比如seq = 2:10),我想找到第一个数字,B对于每个A和每个seq,都高于+ s.

  2. 与问题1)一样,但我想知道第一个更大的值和第一个更低的值,并创建一个矩阵,它存储哪一个是第一个.所以例如我有一个A,和seq的10.我想找到第一个值B,它高于+ 10,或低于-10,然后存储它的索引和值.

r

7
推荐指数
2
解决办法
1933
查看次数

使命令行以逗号分隔或解析空格

我正在尝试使用命令行参数从命令行运行R. 这包括传入一些文件路径作为在脚本中使用的参数.它大部分时间都有效,但有时路径中有空格而R不理解.

我正在运行以下形式:

R CMD BATCH --slave "--args inputfile='C:/Work/FolderWith SpaceInName/myinputfile.csv' outputfile='C:/Work/myoutputfile.csv'" RScript.r ROut.txt
Run Code Online (Sandbox Code Playgroud)

R抛出一个文件说

Fatal error: cannot open file 'C:\Work\FolderWith': No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以我的单引号显然不足以告诉R将引号内的所有内容作为参数值.我在想这意味着我应该找到一种方法来分隔我--args使用逗号,但我找不到办法来做到这一点.我确信这很简单,但我在文档中找不到任何内容.

当前脚本非常基本:

ca = commandArgs(trailingOnly=TRUE)
eval(parse(text=ca))
tempdata = read.csv(inputFile)
tempdata$total = apply(tempdata[,4:18], 1, sum)
write.csv(tempdata, outputFile, row.names = FALSE)
Run Code Online (Sandbox Code Playgroud)

如果它是相关的我正在使用Windows,但它似乎不是一个cmd提示问题.

r commandargument

7
推荐指数
1
解决办法
1818
查看次数

如何抑制来自cast()的警告消息

我用cast()reshape包装相当频繁.几乎每次都会弹出这个警告:

Aggregation requires fun.aggregate: length used as default

我试图设定options( warn =-1),但无济于事.如何抑制这些警告?

r reshape

6
推荐指数
2
解决办法
2993
查看次数

如何避免data.table中的矢量搜索

我有一个data.table X,我想基于2个字符变量创建一个变量

   X[, varC :=((VarA =="A" & !is.na(VarA)) 
               | (VarA == "AB" & VarB =="B" & !is.na(VarA) & !is.na(VarB))
                )
      ]
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但速度很慢,因为它对2个char变量进行矢量扫描.请注意,我没有通过VarA和VarB setkey claim4 table.在data.table中有没有"正确"的方法呢?

更新1:我没有使用setkey进行此转换,因为我已经使用setkey(X,Year,ID)进行其他变量转换.如果我这样做,我需要在此转换后将密钥重置为Year,ID.

更新2:我用Matthew的方法对我的方法做了基准测试,他的速度要快得多:

          test replications elapsed relative user.self sys.self user.child sys.child
2 Matthew               100   3.377    1.000     2.596    0.605          0         0
1 vectorSearch          100 200.437   59.354    76.628   40.260          0         0
Run Code Online (Sandbox Code Playgroud)

唯一的小事是setkey然后重新setkey再次有点冗长:)

r data.table

6
推荐指数
1
解决办法
487
查看次数

恢复应用内购买交易

这个想法是无论是下雨还是下雨,潮湿或精细,用户都必须得到他付出的全部费用.

来自Apple:

Store Kit provides built-in functionality to restore transactions for non-consumable products, auto-renewable subscriptions and free subscriptions

对于这些交易,Apple Store Kit具有良好的内置工具.我想专注于其他类型(特别是消耗品).唯一的交易信息是我们在成功购买后通过Store Kit接收的标识符和收据数据.我们的应用程序使用服务器端模型向其提供产品.但是仍然存在许多丢失购买数据的情况,例如当用户通过App Store进行购买时服务器放下,因此无法向服务器发送收据以完成验证过程.

目前的解决方法是:

  1. 服务器返回产品标识符列表
  2. 用户选择一个; app将其标识符保存在设备上(通过SQLite或Core Data).Standart Apple Store交易流程紧随其后.
  3. 如果成功,应用程序将收据数据与其设备上的标识符一起保存并发送给服务器.如果出现故障或取消,则立即从设备中删除标识符.
  4. 如果服务器的响应正常,则应用程序将从设备中删除带有收据数据的标识符.否则,它将定期向服务器发送请求,直到成功响应行为为止.

但这种方法仍然存在泄漏.例如,用户可以从设备中删除不等待交易到服务器的应用程序,因此根本不会有任何关于他的购买的证据.

你的建议?

iphone in-app-purchase ios

6
推荐指数
1
解决办法
1674
查看次数