小编use*_*480的帖子

循环函数并将列添加到 R 中的数据帧

我想在数据帧上循环一个函数,并将函数中的信息添加到数据帧中。我已经阅读了许多有关循环和将函数应用于数据帧的相关文章,这些文章让我接近了我所需要的,但还不够,所以我希望人们可以帮助我。

我有许多看起来像这样的数据框

dat1=as.data.frame(matrix(rnorm(25),ncol=5))
dat2=as.data.frame(matrix(rnorm(25),ncol=5))
dat3=as.data.frame(matrix(rnorm(25),ncol=5))
Run Code Online (Sandbox Code Playgroud)

我想计算其中一些列的平均值并添加到数据框的末尾。因此,我编写了一个函数来计算数据帧的平均值:

my_fun <-  function(dataframe){
rowMeans( dataframe[ , c("V1","V2")],na.rm=TRUE) 
}
Run Code Online (Sandbox Code Playgroud)

要将此函数应用于一个数据帧,我这样做:

 dat1$V6<- my_fun(dat1)
Run Code Online (Sandbox Code Playgroud)

但我希望能够循环所有数据帧并将此平均列添加到每个 df 的末尾。

阅读了一些有用的帖子后,我创建了一个列表并使用了 sapply:

dfList<-list(dat1,dat2,dat3)#create list
sapply(dfList, my_fun) #apply function to list
Run Code Online (Sandbox Code Playgroud)

这给了我想要的值,但我不希望它们在单独的输出中 - 我希望它们简单地在原始数据帧上添加一列 - 就像我将函数应用于各个数据帧时发生的那样。谁能告诉我该怎么做?或者向我指出一篇描述如何执行此操作的帖子(我已经进行了高低搜索,但可能输入了错误的关键字),如果您知道如何操作,我确信它非常简单!

loops r function mean sapply

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

标签 统计

function ×1

loops ×1

mean ×1

r ×1

sapply ×1