【发布时间】:2016-03-08 20:12:28
【问题描述】:
我在编辑数据框时遇到了一些问题。 首先,我的数据:
X1 0.7
X2 0.05
X3 0.4
X5 0.9
我想做的是在 X4 中添加 0 行,这样我的数据看起来像:
X1 0.7
X2 0.05
X3 0.4
X4 0
X5 0.9
我有一个大型数据集,缺失值位于随机位置。如何在 R 中找到缺失值以添加一行?
【问题讨论】:
我在编辑数据框时遇到了一些问题。 首先,我的数据:
X1 0.7
X2 0.05
X3 0.4
X5 0.9
我想做的是在 X4 中添加 0 行,这样我的数据看起来像:
X1 0.7
X2 0.05
X3 0.4
X4 0
X5 0.9
我有一个大型数据集,缺失值位于随机位置。如何在 R 中找到缺失值以添加一行?
【问题讨论】:
我们可以使用merge 和all.x=TRUE。根据 OP 帖子中提供的示例,我们使用sub 从第一列中提取数字部分,转换为numeric,获取值的range 和paste 上的序列,使用'X'创建一个新的“data.frame”。这将是旧数据集的merged,因此如果旧数据集中的第一列没有匹配值,则第二列中的相应元素将由NA 填充。如果需要,我们可以使用 is.na 将它们更改为 0(但不推荐)。
dM <- merge(data.frame(V1=paste0("X", Reduce(`:`,
range(as.numeric(sub('\\D+', '', df1$V1)))))), df1, all.x=TRUE)
dM$V2[is.na(dM$V2)] <- 0
dM
# V1 V2
#1 X1 0.70
#2 X2 0.05
#3 X3 0.40
#4 X4 0.00
#5 X5 0.90
【讨论】: