Data.table 用 NA 替换值序列
Data.table replace sequence of values with NA
我希望使用变量作为列指示符在数据 table 中用 NA 替换特定的值序列。
Example:
dt <- data.table(col1=1:10, col2=11:20)
specific_column <- 2
Output:
col1 col2
1: 1 11
2: 2 12
3: 3 13
4: 4 14
5: 5 15
6: 6 16
7: 7 17
8: 8 18
9: 9 19
10: 10 20
我想专门用 NA 替换 col2 和位置 2:5 中的值以获得以下输出:
col1 col2
1: 1 11
2: 2 NA
3: 3 NA
4: 4 NA
5: 5 NA
6: 6 16
7: 7 17
8: 8 18
9: 9 19
10: 10 20
我能够 select 我感兴趣的值:
dt[2:5,..specific_column]
很遗憾,无法使用数据帧的替换方法:
dt[2:5,..specific_column] <- NA
#Error in `[<-.data.table`(`*tmp*`, 2:5, ..specific_column, value = NA) :
object '..specific_column' not found
我找到的唯一解决方法是:
dt[2:5,print(specific_column)] <- NA
这行得通,但由于它总是打印“特定列”,因此大大减慢了进度。
(我正在使用更大的数据集(10000行,28列))
是否有一种简单的解决方案可与用于数据框的解决方案相媲美?
非常感谢。
尝试使用
dt[2:5, (specific_column) := NA]
data.table
中有一个set()
函数
library(data.table)
DT <- data.table(col1=1:10, col2=11:20)
specific_column <- 2L
set(DT, i=3:5, specific_column, NA)
DT
从 data.table 版本 1.14.3(目前正在开发中)开始,有一个新的 env
参数用于对 data.table 调用进行编程控制(参见 here)。对于这种简单的情况可能有点矫枉过正,但我在这里展示了如何使用它,因为它对于要求更高的情况来说是一个潜在有用的功能,因此很高兴知道:
dt[2:5, mycol := NA, env = list(mycol = specific_column)]
注意,您可以使用data.table::update.dev.pkg()
安装最新的开发版本
我希望使用变量作为列指示符在数据 table 中用 NA 替换特定的值序列。
Example:
dt <- data.table(col1=1:10, col2=11:20)
specific_column <- 2
Output:
col1 col2
1: 1 11
2: 2 12
3: 3 13
4: 4 14
5: 5 15
6: 6 16
7: 7 17
8: 8 18
9: 9 19
10: 10 20
我想专门用 NA 替换 col2 和位置 2:5 中的值以获得以下输出:
col1 col2
1: 1 11
2: 2 NA
3: 3 NA
4: 4 NA
5: 5 NA
6: 6 16
7: 7 17
8: 8 18
9: 9 19
10: 10 20
我能够 select 我感兴趣的值:
dt[2:5,..specific_column]
很遗憾,无法使用数据帧的替换方法:
dt[2:5,..specific_column] <- NA
#Error in `[<-.data.table`(`*tmp*`, 2:5, ..specific_column, value = NA) :
object '..specific_column' not found
我找到的唯一解决方法是:
dt[2:5,print(specific_column)] <- NA
这行得通,但由于它总是打印“特定列”,因此大大减慢了进度。 (我正在使用更大的数据集(10000行,28列))
是否有一种简单的解决方案可与用于数据框的解决方案相媲美?
非常感谢。
尝试使用
dt[2:5, (specific_column) := NA]
data.table
中有一个set()
函数
library(data.table)
DT <- data.table(col1=1:10, col2=11:20)
specific_column <- 2L
set(DT, i=3:5, specific_column, NA)
DT
从 data.table 版本 1.14.3(目前正在开发中)开始,有一个新的 env
参数用于对 data.table 调用进行编程控制(参见 here)。对于这种简单的情况可能有点矫枉过正,但我在这里展示了如何使用它,因为它对于要求更高的情况来说是一个潜在有用的功能,因此很高兴知道:
dt[2:5, mycol := NA, env = list(mycol = specific_column)]
注意,您可以使用data.table::update.dev.pkg()