簡體   English   中英

如何append R中的列?

[英]How to append the column in R?

考慮以下名為mydata的數據。 我的意圖是通過添加標識符變量v4v1v2放在同一列中。

id v1 v2 
1  2  3
2  4  5
3  7  8

需要OUTPUT

id v3 v4 
1  2  1
2  4  1
3  7  1
1  3  2
2  5  2
3  8  2

任何幫助深表感謝!

那這個呢:

mydata <- data.frame(c(1,2,3),c(2,4,7),c(3,5,8))
colnames(mydata) <- c("id","v1","v2")



mydata_2 <- rbind(mydata[,c(1,2)], setNames(mydata[,c(1,3)], names(mydata[,c(1,2)])))
mydata_2$v4 <- c(rep(1,length(mydata$v1)),rep(2,length(mydata$v2)))
colnames(mydata_2) <- c("id","v3","v4")

data.table選項

setcolorder(
  transform(
    setnames(melt(setDT(df), id.var = "id", variable.name = "v4"), "value", "v3"),
    v4 = as.numeric(factor(v4))
  ), c("id", "v3", "v4")
)[]

   id v3 v4
1:  1  2  1
2:  2  4  1
3:  3  7  1
4:  1  3  2
5:  2  5  2
6:  3  8  2

我認為您正在尋找諸如dplyr::mutate()類的東西來添加列,以及rbind()來將兩個數據幀堆疊在一起。

library(dplyr)    
mydata <- data.frame (id  = c(1,2,3),
                      v1 = c(2,4,7),
                      v2 = c(3,5,8))
)

a<- data.frame(mydata$id, mydata$v1)%>%
  mutate(v4=1)%>%
  rename(v3=mydata.v1, id=mydata.id )

b<- data.frame(mydata$id, mydata$v2)%>%
  mutate(v4=2)%>%
      rename(v3=mydata.v2, id=mydata.id )
    
> rbind(a,b)
  id v3 v4
1  1  2  1
2  2  4  1
3  3  7  1
4  1  3  2
5  2  5  2
6  3  8  2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM