看起來你可能有不同數量的列,並且想要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