【发布时间】:2020-06-26 22:04:00
【问题描述】:
我在使用dpylr 处理数据时遇到了一些麻烦。基本上我有一个这样的数据集:
test <- data.frame(
var1 = rnorm(10, 10, 3),
var2 = rnorm(10, 20, 6),
var3 = c(rnorm(7, 20, 6), NA, NA, NA)
)
> test
var1 var2 var3
1 8.882003 16.222680 21.46382
2 7.220067 22.296354 22.88066
3 11.060342 27.886035 16.01724
4 6.165811 6.320757 20.76175
5 7.599280 29.168573 11.54408
6 7.807514 19.811270 15.10216
7 6.518541 28.733050 17.15341
8 7.601128 13.063873 NA
9 5.992121 24.232977 NA
10 6.510580 24.478872 NA
var3 假设计算为var1 + var2,所以我想在var3 中填充 NA 值,计算 var1 + var2(或使用 columns 的任何操作),但仅适用于具有 NA 的行价值观。我该怎么办?
【问题讨论】:
-
使用 data.table 这将是解决方案:
library(data.table); setDT(test)[is.na(var3), var3 := var 1 + var2] -
或以 R 为基数:
ix <- is.na(test$var3); test$var3[ix] <- rowSums(test[ix, 1:2])