Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 用上一个非空行的重复项填充空行_R - Fatal编程技术网

R 用上一个非空行的重复项填充空行

R 用上一个非空行的重复项填充空行,r,R,我有一个数据框,其列如下: [1] i5olv [2] [3] udp3o [4] [5] [6] [7] uem5i [8] b0047 [9] [10] 请注意,元素没有特定的顺序,非空元素之间可能存在数量可变的空行。我希望该专栏改为如下: [1] i5olv [2] i5olv [3] udp3o [4] udp3o [5] udp3o [6] udp3o [7] uem5i [8] b0047 [9] b0047 [10] b0047 如何以矢量化的方式执行此操作?我可以使用一个fo

我有一个数据框,其列如下:

[1] i5olv
[2]
[3] udp3o
[4]
[5]
[6]
[7] uem5i
[8] b0047
[9]
[10]
请注意,元素没有特定的顺序,非空元素之间可能存在数量可变的空行。我希望该专栏改为如下:

[1] i5olv
[2] i5olv
[3] udp3o
[4] udp3o
[5] udp3o
[6] udp3o
[7] uem5i
[8] b0047
[9] b0047
[10] b0047

如何以矢量化的方式执行此操作?我可以使用一个for循环来实现这一点,该循环缓存最后一个非空值,但速度很慢。

一个使用
数据的选项。table

library(data.table)
setDT(df1)[, Col1:=Col1[1L] ,cumsum(Col1!='')]

 #    Col1
 #1: i5olv
 #2: i5olv
 #3: udp3o
 #4: udp3o
 #5: udp3o
 #6: udp3o
 #7: uem5i
 #8: b0047
 #9: b0047
 #10: b0047
数据
df1您可以将空单元格转换为
NA
s,并使用
zoo
软件包中的
NA.locf
。仅供参考,在您的问题中包含易于复制的数据很有帮助。例如,请参见akrun答案中的“数据”部分。您可以使用数据帧上的
dput
函数来获取这种代码。@DavidArenburg好极了!我不知道na.locf函数。我可以从Google和StackOverflow上的结果看出,这正是我所需要的。相关问题:
 df1 <- structure(list(Col1 = c("i5olv", "", "udp3o", "", "", "", 
 "uem5i", 
 "b0047", "", "")), .Names = "Col1", row.names = c(NA, -10L),
  class = "data.frame")