我正在尝试在我的变量集上使用lapply,但我想将输出作为单独的变量。例如。
df <- list(var1,var2,var3,var4)
di <- function(x) {diff(x)
difference <- lapply(df,di)
但这给了我4个项目的清单。但我希望这个结果为x1,x2,x3,x4。 有可能得到这个吗? 很抱歉没有足够的解释。
答案 0 :(得分:0)
您使用错误的工具来实现目标。 lapply
函数将输出存储在列表中。如akrun所示,您可以将lapply
的结果强制转换为单独的4个单独的对象,x1
,x2
,x3
,x4
。
更适合您目标的工具是for循环。例如,
for(i in seq(1, length(df))){
n <- paste0("x",i)
assign(n, diff(df[[i]]))
}
总而言之,你的最终目标有点可疑。我建议您将结果保存在列表或矩阵中,特别是如果您是R的新手。通过将所有结果包含在列表或矩阵中,您可以继续使用lapply
和sapply
等函数操纵你的结果。
答案 1 :(得分:0)
你应该再试一次:
df<- list(var1,var2,var3,var4)
df[1:4]<-lapply(df[1:4], function(x) diff(x))