【发布时间】:2021-09-09 12:14:13
【问题描述】:
我有一个数据框列表,我想替换该列表中所有数据框第二列中的 0。
这是数据框列表的最小工作示例:
> named <- c(1, 2, 3, 4, 5, 6)
> one <- c(0, 2, 0, 4, 5, 0)
> two <- c(1, 0, 3, 0, 0, 6)
> df <- data.frame(named, one, two)
> df1 <- data.frame(named, two, one)
> listed <- list(df, df1)
>
> listed
[[1]]
named one two
1 1 0 1
2 2 2 0
3 3 0 3
4 4 4 0
5 5 5 0
6 6 0 6
[[2]]
named two one
1 1 1 0
2 2 0 2
3 3 3 0
4 4 0 4
5 5 0 5
6 6 6 0
我可以用replace(listed[[2]][2], listed[[2]][2] == 0, 1) 替换特定数据帧的一列(以下代码中第二个数据帧的第二列)。
但是如何对列表中的所有数据框执行此操作?我试过了:
for (i in 1:2) {
replace(listed[[i]][2], listed[[i]][2] == 0, -1)
}
但这显然是一次糟糕的尝试。
【问题讨论】: