我有一个数据框列表[14](sujets)。我想在列表的每个数据框中添加一列。每个数据框具有相同的列数,但行数不同。
> summary(sujets)
Length Class Mode
Sujet 1 85 data.frame list
Sujet2 85 data.frame list
Sujet 3 85 data.frame list
SUjet 4 85 data.frame list
Sujet 5 85 data.frame list
Sujet 6 85 data.frame list
Sujet 7 85 data.frame list
Sujet 8 85 data.frame list
Sujet 9 85 data.frame list
Sujet 10 85 data.frame list
Sujet 11 85 data.frame list
Sujet 12 85 data.frame list
SUjet 13 85 data.frame list
Sujet 14 85 data.frame list
在本专栏中,我想应用以下内容:function(x) 0.001*x
。
用x表示sujets [[i]] [[86]]的行号,该列添加到每个数据帧。
我尝试了很多不同的选择但没有效果...... 当我尝试向每个数据框添加一个新列时,它的类型因素阻止我应用函数。
非常感谢你的帮助!
感谢您的回答,以下代码最终对我有用:
for (i in 1:nbrSujet) {
nrows = nrow(sujets[[i]])
ncols = ncol(sujets[[i]])
Timestamp <- c(1:nrows)
for (j in 1:nrows) {
Timestamp[j] = 0.001*j
}
sujets[[i]]$Timestamp <- Timestamp
}
我在列表的每个数据框中都有一个新列,我应用于每一行[j] function(x) 0.001*x.
很抱歉,如果我的解释不是很清楚,我是R的新手,下次我会更具体:)
答案 0 :(得分:0)
如果可以,请为我们提供一个玩具示例。
我想到了这个可能的解决方案:
require(dplyr)
l <- lapply(sujets, function(x) {
x <- x %>% mutate(newvariable = 0.001*nrow(x))
})
x为sujets [[i]] [[86]]的行号,该列添加到每个数据帧。
这句话对我来说并非100%清楚,我希望我在答案中说得对。