我有一个数据框列表。每个列都有一个 ID 列,后跟许多数字列(带有列名称)。
我想将所有数字列的所有 1 替换为 0,但保持 ID 列相同。我可以使用单个数据框来部分完成此操作
df[,-1] <- 0
但是当我尝试将其嵌入到 lapply 中时,它失败了:
df2 <- lapply(df, function(x) {x[,-1] <- 0})
我尝试过使用subset、ifelse、while、mutate,但在这个简单的替换中遇到了困难。可以从头开始重新创建数据框,或者在最后重新组合 ID 列,但这对我来说应该很容易......
测试清单:
test_list <- list(data.frame("ID"=letters[1:3], "col2"=1:3, "col3"=0:2), data.frame("ID"=letters[4:6], "col2"=4:6, "col3"=0:2))
最终结果应该是:
final_list <- list(data.frame("ID"=letters[1:3], "col2"=0, "col3"=0), data.frame("ID"=letters[4:6], "col2"=0, "col3"=0))