我有以下的 R 数据框:
df <- data.table(
id = c(1, 2, 3),
x = c(1, NA, NA),
y = c(NA, 2, NA),
z = c(NA, NA, 3))
我希望将“y”列以及其后所有列的数据向上移动,但不改变值顺序。列数是可变的。最终数据集应该如下所示:
df_result <- data.table(
id = c(1, 2, 3),
x = c(1, NA, NA),
y = c(2, NA, NA),
z = c(3, NA, NA))
如果您能帮忙,感激不尽!
谢谢。
\(x)
是基础 R 中等同于新版本中的function(x)
的表达方式。 - akrun[.data.table
(df1, ,:=
((names(df1)[-1]), lapply(.SD, function(x) x[order(is.na(x))])), : 提供了18列以分配3个项目。请参阅v1.12.2的NEWS。 - Andrii