-3

令人惊讶的是,我在已经在这里的人中找不到这个问题。很抱歉,这是基本的。

我有这个:

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
4

2 回答 2

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]
于 2013-09-15T19:33:00.037 回答
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
于 2013-09-15T19:33:11.067 回答