首页 > 解决方案 > 在数据表的列中重复行

问题描述

我有一个数据表,其中包括NA一些单元格中的 s,如下所示。数据表:

在此处输入图像描述 但是,我想将名为“Category”的列中的第一行重复到以下两行写为“NA”的行,而其他列“Numeric”和“Numeric.null”没有任何变化。Category 中的第 4 行也是如此,重复到第 5 行和第 6 行,但其他列没有变化。新的:

2

我只是在学习 R 编程。我试过代表功能。但我做不到。请帮我。

标签: r

解决方案


我们可以fill使用tidyr

library(dplyr)
library(tidyr)
df1 <- df1 %>% 
          fill(Category)
df1
#  Category Numeric Numeric.null
#1        A       1            1
#2        A       2            2
#3        A       3            4
#4        D       4            7
#5        D       5            6
#6        D       6            8
#7        E       7           11

data.tablena.locf0

library(data.table)
library(zoo)
setDT(df1)[, Category := na.locf0(Category)][]

数据

df1 <- structure(list(Category = c("A", NA, NA, "D", NA, NA, "E"), Numeric = 1:7, 
    Numeric.null = c(1L, 2L, 4L, 7L, 6L, 8L, 11L)), 
    class = "data.frame", row.names = c(NA, 
-7L))

推荐阅读