Area RA RI WA WI NA NI
3 3 1 4 2 2 1
2 2 1 3 1 2 1
3 2 1 3 2 2 1
2 2 1 3 1 1 1
2 2 1 3 2 1 1
2 2 1 2 1 2 1
2 3 1 2 1 2 1
3 1 1 2 2 1 1
2 2 1 1 1 2 1
2 2 1 2 1 2 1
3 1 1 3 1 1 1
我想保留第一列并将每两列堆叠为:
Area columan 1 Column 2
3 3 1
2 2 1
3 2 1
2 2 1
2 2 1
2 2 1
2 3 1
3 1 1
2 2 1
2 2 1
3 1 1
3 4 2
2 3 1
3 3 2
2 3 1
2 3 2
2 2 1
2 2 1
3 2 2
2 1 1
2 2 1
3 3 1
3 2 1
2 2 1
3 2 1
2 1 1
2 1 1
2 2 1
2 2 1
3 1 1
2 2 1
2 2 1
3 1 1
您的建议非常感谢!
答案 0 :(得分:1)
我们使用回收逻辑索引(c(TRUE, FALSE)
获取交替列,然后在没有第一列(df1[-1]
),unlist
的情况下对数据集进行子集化,并使用第一列对其进行cbind。
d1 <- data.frame(Area = df1[,1], column1 = unlist(df1[-1][ c(TRUE, FALSE)]),
column2 = unlist(df1[-1][c(FALSE, TRUE)]))
row.names(d1) <- NULL
head(d1)
# Area column1 column2
#1 3 3 1
#2 2 2 1
#3 3 2 1
#4 2 2 1
#5 2 2 1
#6 2 2 1
tail(d1)
# Area column1 column2
#28 2 2 1
#29 2 2 1
#30 3 1 1
#31 2 2 1
#32 2 2 1
#33 3 1 1