在数据帧中将2列合并为一列

Pau*_*aul 13 r dataframe

这应该很简单,但我正在努力解决它.

我想将一个数据帧中的两列合并为一列.我有custemer ID(20227)和year(2009)的单独列.我想创建一个包含两者的新列(2009_20227).

akr*_*run 18

你可以用 paste

transform(dat, newcol=paste(year, customerID, sep="_"))
Run Code Online (Sandbox Code Playgroud)

或者使用 interaction

dat$newcol <- as.character(interaction(dat,sep="_"))
Run Code Online (Sandbox Code Playgroud)

数据

dat <- data.frame(year=2009:2013, customerID=20227:20231)
Run Code Online (Sandbox Code Playgroud)


Col*_*vel 13

与功能一些替代方式unitetidyr:

library(tidyr)
df = data.frame(year=2009:2013, customerID=20227:20231) # using akrun's data

unite(df, newcol, c(year, customerID), remove=FALSE)

#      newcol year customerID
#1 2009_20227 2009      20227
#2 2010_20228 2010      20228
#3 2011_20229 2011      20229
#4 2012_20230 2012      20230
#5 2013_20231 2013      20231
Run Code Online (Sandbox Code Playgroud)


Jaa*_*aap 7

另一种选择(使用@akrun 的例子):

dat <- data.frame(year=2009:2013, customerID=20227:20231)
dat$newcol <- paste(dat$year, dat$customerID, sep="_")
Run Code Online (Sandbox Code Playgroud)