【发布时间】:2016-05-25 18:14:30
【问题描述】:
我希望在对另一个数据框列表进行的计算中使用相关数据框列表中的数据。
目前,我的代码是这样的:
library(dplyr)
#Set up Dummy Data
types = c("A", "B", "C")
value = c(1, 2, 3, 4, 5, 6)
value3 = c(100, 150, 200, 250, 300, 350)
df_1 = data.frame(types, value, value3)
value2 = c(.1, .2, .3, .4, .5, .6)
value4 = c(.01, .02, .03, .04, .04, .06)
df_2 = data.frame(types, value2, value4)
#Split into lists
split1 = split(df_1, df_1$types)
split2 = split(df_2, df_2$types)
#run function inside of one list within each data frame.
split1 = lapply(split1, function(x) mutate(x, multiply = value * value3))
#run function inside of one list using data from corresponding data in different list
test = lapply(split2, function(x) select(x, value2))
lapply(split1, function(x) mutate(x, divide = value3/test))
最后一行代码生成错误“non-numeric argument to binary operator”。
【问题讨论】:
-
您似乎为名为@987654322@的函数使用了单独的包
-
对于
lapply(split1, function(x) mutate(x, divide = value3/test)),test是一个数据框列表,因此您试图将一个数值向量除以一个数据框列表。 -
我已经编辑了原始问题以加载
dplyr库并添加了lapply和mapply标签。