向下复制字符数据

时间:2016-09-16 18:25:59

标签: r copy

我有一个荒谬的For循环问题,我提前道歉,但我无法弄清楚。这是一张表:

     Site     Date Software EPFU LABO
3  Site 10 20160517     BCID   70  210
4  Site 10 20160518     BCID   NA   NA
5          20160519     BCID   NA   NA
6          20160520     BCID   NA   NA
7          20160521     BCID   NA   NA
8          20160522     BCID   NA   NA
9  Site 11 20160517     BCID    2  139
10 Site 11 20160518     BCID   NA    9
11         20160519     BCID   NA   NA
12         20160520     BCID   NA   NA
13         20160521     BCID   NA   NA
14         20160522     BCID   NA   NA`

如何填写“Site 10”下方的空白,并显示“Site 10”的文本,直至到达“Site 11”,此时循环将以“Site 11”文本重复,依此类推......帮助将不胜感激。网站目前是一个字符类,但如果能够简化这个混乱,我可以把它作为一个因素。另外一个问题是“空白”单元格实际上是一系列“”,“”和“*”,可以简化这种混乱。

2 个答案:

答案 0 :(得分:3)

这应该这样做:

library(zoo)
data$Site[data$Site == ""] <- NA
data$Site2 <- na.locf(data$Site,na.rm = FALSE)

答案 1 :(得分:2)

na.locf()是你的朋友。它被描述为“在其之前用最近的非NA替换每个NA的通用函数。”

尝试:

install.packages("zoo")
df$Site<-zoo::na.locf(df$Site)