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")