[英]How to append the column in R?
考慮以下名為mydata
的數據。 我的意圖是通過添加標識符變量v4
將v1
和v2
放在同一列中。
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.