将 2 列合并为数据框中的一列
Merge 2 columns into one in dataframe
这应该很简单,但我正在努力。
我想将单个数据框中的两列合并为一列。我有单独的客户 ID (20227) 和年份 (2009) 列。我想创建一个同时包含 (2009_20227).
的新列
你可以使用 paste
transform(dat, newcol=paste(year, customerID, sep="_"))
或使用interaction
dat$newcol <- as.character(interaction(dat,sep="_"))
数据
dat <- data.frame(year=2009:2013, customerID=20227:20231)
tidyr
中函数 unite
的一些替代方法:
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
另一种选择(使用@akrun 的例子):
dat <- data.frame(year=2009:2013, customerID=20227:20231)
dat$newcol <- paste(dat$year, dat$customerID, sep="_")
这应该很简单,但我正在努力。
我想将单个数据框中的两列合并为一列。我有单独的客户 ID (20227) 和年份 (2009) 列。我想创建一个同时包含 (2009_20227).
的新列你可以使用 paste
transform(dat, newcol=paste(year, customerID, sep="_"))
或使用interaction
dat$newcol <- as.character(interaction(dat,sep="_"))
数据
dat <- data.frame(year=2009:2013, customerID=20227:20231)
tidyr
中函数 unite
的一些替代方法:
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
另一种选择(使用@akrun 的例子):
dat <- data.frame(year=2009:2013, customerID=20227:20231)
dat$newcol <- paste(dat$year, dat$customerID, sep="_")