之前已在以下链接中询问过我的问题。但是,如果您阅读Steven Miller在答案上标记的评论,他仍然遇到代码问题(因为在数据框中我没有得到我想要的连接模式)。我也有同样的问题。我该如何解决这个问题?
Concatenating two string variables in r
例如,我有一个看起来像这样的数据框
bankname bankid year quarter totass cash bond loans
Bank A 1 1881 1 244789 7250 20218 29513
Bank B 2 1881 3 195755 10243 185151 2800
Bank C 3 1881 2 107736 13357 177612 NA
Bank D 4 1881 4 170600 35000 20000 5000
Bank E 5 1881 3 3200000 351266 314012 NA
这是创建此数据框的代码
bankid <- c( 1, 2, 3, 4, 5)
year<- c( 1881, 1881, 1881, 1881, 1881)
quarter<-c(3,1,1,2,4)
totass <- c(244789, 195755, 107736, 170600, 32000000)
cash<-c(7250,10243,13357,35000,351266)
bond<-c(20218,185151,177612,20000,314012)
loans<-c(29513,2800,NA,5000,NA)
bankdata<-data.frame(bankid,year,quarter, totass, cash, bond, loans)
如果您使用链接中建议的代码
Concatenating two string variables in r
bankdata$yearquarter <-apply (bankdata,1,function(x) paste0(toString(year),toString(quarter)))
你仍然在数据框中得到这个。
bankdata$yq
# [1] "1881, 1881, 1881, 1881, 18813, 1, 1, 2, 4"
你如何解决这个问题?
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.1.2
> conflicts()
[1] "body<-" "kronecker"
答案 0 :(得分:1)
如果您提供了更多信息,将会有所帮助。这是一个例子:
df <- data.frame(x=1:26, y=as.factor(LETTERS))
paste(df$x, df$y)
[1] "1 A" "2 B" "3 C" "4 D" "5 E"...
paste(df$x, df$y, sep="")
[1] "1A" "2B" "3C" "4D" "5E"...
元素是什么类并不重要,引擎会将它们转换为字符类。
如果这不能解决问题,请提供您的数据样本以获得更多帮助。