如何在R中的多个列中添加其他行?

时间:2016-04-18 08:43:13

标签: r excel

我的DF看起来像这样:

@ExceptionHandlers

我想在R中对其进行转换,以便多个' V'列具有重复的ID:

ID  V1    V2  V3
A   100  200    
B   100     
C   300     
D   400     
E   223  233   4

在R或Excel中执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我们可以使用melt

library(data.table)
setnames(melt(setDT(df), id.var="ID", na.rm=TRUE)[order(ID), -2, with = FALSE], 2, "V1")[]
#   ID  V1
#1:  A 100
#2:  A 200
#3:  B 100
#4:  C 300
#5:  D 400
#6:  E 223
#7:  E 233
#8:  E   4

答案 1 :(得分:2)

你也可以试试tidyr:

library(tidyr)
df <- df %>% gather(new, V1, 2:4) %>% filter(!is.na(V1)) 

如果您不希望“新”列添加此cody(库“dplyr”):

%>% select(id, V1)