r - R:参数长度为零
问题描述
argument is of length zero
将数据框及其各自的列传递给自定义函数时出现错误。
我做了一个函数来检查一列中的值是否等于任何其他列中的值,它应该在名为的数据框的新列中返回一个值data$group
。
//Name of Data Frame is 'data'
bucket.function<-function(df2, a, b, c, d, e, f, g, h, i) {
if(df2$a==df2$b)
result<- "if"
else if(df2$a==df2$c)
result<-"df"
else if(df2$a==df2$d)
result<-"bus"
else if(df2$a==df2$e)
result<-"car"
else if(df2$a==df2$f)
result<-"train"
else if(df2$a==df2$g)
result<-"exp"
else if(df2$a==df2$h)
result<-"dh"
else if(df2$a==df2$i)
result<-"ih"
else
result<- "NA"
return(result)
}
data$group <- bucket.function(data, "latest_txn_date", "if_last_txn_date", "df_last_txn_date", "b_last_txn_date", "car_last_txn_date", "train_last_txn_date", "exp_last_txn_date", "dh_last_txn_date", "ih_last_txn_date")
我希望输出是一列值,data$group
其中包含为 的每个值返回的值d$a
,这里data$latest_txn_date
解决方案
df2$a
不在您的数据框中,因为您没有a
列。df2[[a]]
您必须通过评估 / 的值来访问它a
。参数的原理a
相同i
。此外,您在您的if
条件下比较两个向量。我假设您希望每一行都有不同的结果。请看一下功能switch
。
推荐阅读
- selenium - 如何修复硒中的元素点击拦截异常
- r - R倾向得分与百万行数据匹配
- dictionary - 如何根据 .bmp 文件中的 RGB 代码定位特定像素坐标?
- python - 如何在虚拟机中将python3.5升级到python3.6?
- flexbox - 我正在尝试在我的文件中创建一个 H1 元素,它只是作为文本发布而不是所需的结果
- android - MutableLiveData 未发布正确的值 - Android
- arrays - 数组.map与.map中的Ruby整数元素!?以及如何检查哪个代码最好?
- c# - 如何在没有 Mono.Posix 的情况下使用 p/invoke 在 .NET 5 / .NET 6 中获取 Linux 文件权限?
- c# - 当右侧为空时,Linq Left Join 在列表中失败
- c# - Azure VM - TCP 侦听器不适用于自定义端口