看起来你可能有不同数量的列,并且想要t Ø通过10.通过最后一列的多个第3列,我会用lapply
:
# Sample data:
files.list = list(mtcars, data.frame(x = letters, y = runif(26), z = rnorm(26)))
files.list = lapply(files.list, function(d) {
d[3:ncol(d)] = d[3:ncol(d)] * 10
return(d)
})
这相当于一个for循环:
for (i in seq_along(files.list)) {
d = files.list[[i]]
d[3:ncol(d)] = d[3:ncol(d)] * 10
files.list[[i]] = d
}
你也写了for循环修改数据帧就位,但这涉及到很多括号:
for (i in seq_along(files.list)) {
files.list[[i]][3:ncol(files.list[[i]])] = files.list[[i]][3:ncol(files.list[[i]])] * 10
}
虽然可以改进如果我们用df[-(1:2)]
省略前两列,而不是通过df[3:ncol(df)]
第n选择第三个:
for (i in seq_along(files.list)) {
files.list[[i]][-(1:2)] = files.list[[i]][-(1:2)] * 10
}
Python的大熊猫没有'的NcoI()'。在pandas中,在循环中使用apply:'colrng = list(range(3,len(df.columns))); f [colrng] = f [colrng] .apply(lambda col:col * 10,axis = 1)' – Parfait