我有一个荒谬的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”文本重复,依此类推......帮助将不胜感激。网站目前是一个字符类,但如果能够简化这个混乱,我可以把它作为一个因素。另外一个问题是“空白”单元格实际上是一系列“”,“”和“*”,可以简化这种混乱。
答案 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)