如何用R条件复制行

时间:2019-08-13 11:54:17

标签: r dplyr

我正在寻找一种在某些条件下使用dplyr或其他程序包来复制行并通过删除R上的某些列的方法。

我有一张像这样的桌子:

Ring  Date_d7  Date_d13  Info1  Info2
A     10/05    15/05     2      8
B     12/05    17/05     3      4

我想获得这个:

Ring Stage Date  Info1 Info2
A    d7    10/05 2     8 
A    d13   15/05 2     8 
B    d7    12/05 3     4 
B    d13   17/05 3     4 

很抱歉,我不知道如何制作桌子,因此阅读起来不是很好。 也可能已经有一个答案,但我找不到,我正在寻找一种方法来与dplyr安排我的桌子,但到目前为止没有成功。 预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试一下……我知道有点怪异,但它可以工作。

# Create dummmy dataframe
Ring <- c('A','B'); Date_d7 <- c('10/05','12/05'); Date_d13 <- c('15/05','17/05'); Info1 <- c(2,3); Info2 <- c(8,4); df <- data.frame(Ring,Date_d7,Date_d13, Info1, Info2)

# Add future headers
df$stage7 <- 'd7'; df$stage13 <- 'd13'

# Split table
df1 <- subset(df, select = c(Ring, stage7, Date_d7, Info1, Info2)); colnames(df1)[2] <- 'Stage'; colnames(df1)[3] <- 'Date';
df2 <- subset(df, select = c(Ring, stage13, Date_d13, Info1, Info2)); colnames(df2)[2] <- 'Stage'; colnames(df2)[3] <- 'Date';

# Append for final dataframe
df_final <- rbind(df1, df2)