令人惊讶的是,我在这里找不到这个问题。对不起,这很基本。
我有这个:
A B C D E
1 3 500 200 1
2 3 500 200 2
3 2 500 200 1
3 3 500 200 1
我想将A到D列组合成一个名为“ROW_NAMES”的新列
ROW_NAMES E
13500200 1
23500200 2
32500200 1
33500200 1
答案 0 :(得分:2)
您可能会感到惊讶,但有一个功能paste
和一个便利版paste0
:
df <- within(df, ROW_NAMES <- paste0(A, B, C , D))
df[, 6:5]
# ROW_NAMES E
# 1 13500200 1
# 2 23500200 2
# 3 32500200 1
# 4 33500200 1
或者,如果您想粘贴许多列并希望减少输入:
df$ROW_NAMES <- do.call(paste0, df[, -5])
df[, 6:5]
答案 1 :(得分:0)
qdap包中的Paste2将是解决此问题的一种方法:
## dat <- read.table(text="A B C D E
## 1 3 500 200 1
## 2 3 500 200 2
## 3 2 500 200 1
## 3 3 500 200 1 ", header=TRUE)
library(qdap)
data.frame(ROW_NAMES=paste2(dat[, 1:4], sep=""), E=dat$E)
## > data.frame(ROW_NAMES=paste2(dat[, 1:4], sep=""), E=dat$E)
## ROW_NAMES E
## 1 13500200 1
## 2 23500200 2
## 3 32500200 1
## 4 33500200 1