【发布时间】:2015-09-07 09:23:44
【问题描述】:
我有一个 data.frame 例如:
d <- read.table(text=' V1 V2 V3 V4 V5 V6 V7
1 1 a 2 3 4 9 6
2 1 b 2 2 4 5 NA
3 1 c 1 3 4 5 8
4 1 d 1 2 3 6 9
5 2 a 1 2 3 4 5
6 2 b 1 4 5 6 7
7 2 c 1 2 3 5 8
8 2 d 2 3 6 7 9', header=TRUE)
现在我想取一行,例如第一行 (1a) 和:
从该行获取最小值和最大值。在这种情况下,min=2 和 max=9(注意中间有缺失值,例如该行中没有 5、7 或 8)。
现在我想用所有缺失值替换该行并扩展它(该行将比所有其他行长,因为它将从 2 到 9(2、3、4、5、6、7、 8,9). 整个 data.frame 然后应该自动扩展 NA 列,用于其他行,而不是我替换的行。
我尝试了矢量方法,但我几乎被卡住了。这是我到目前为止所做的:
vec.one_ <- d[1,]
vec.one <- as.vector(vec.one_[3:length(vec.one_)])
min.one <- min(vec.one, na.rm=T)
max.one <- max(vec.one, na.rm=T)
new.one <- as.numeric(vector(,length(vec.one)))
for(i in 1:length(new.one)){
new.one[i] <- NA
}
我尝试将该行提取为向量来操作它,然后将其放回原处。我不确定这是否有效。
这应该是第一行被替换后的 data.frame 并且整个 data.frame 自动扩展为 NA:
d <- read.table(text=' V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 a 2 3 4 5 6 7 8 9
2 1 b 2 2 4 5 NA NA NA NA
3 1 c 1 3 4 5 8 NA NA NA
4 1 d 1 2 3 6 9 NA NA NA
5 2 a 1 2 3 4 5 NA NA NA
6 2 b 1 4 5 6 7 NA NA NA
7 2 c 1 2 3 5 8 NA NA NA
8 2 d 2 3 6 7 9 NA NA NA', header=TRUE)
【问题讨论】: