如何在R中转换为字符串?

时间:2014-10-01 17:02:37

标签: r

我有一个由以下条目组成的数据框:

1 2 a b x a b x n j k 
2 3 g h k k h i o p y
3 4 h g y u i o p n l
.....................

我想将3到11列中的值转换为字符串并存储在原始数据帧中。

1 2 abxabxnjk
2 3 ghkkhiopy
3 4 hgyuiopnl
.............

我尝试在for循环的帮助下通过使用崩溃粘贴命令来完成它,但它花费了无限的时间。我怎么能在R?

中做到这一点

2 个答案:

答案 0 :(得分:1)

一种方式:

a <- read.table(textConnection("
1 2 a b x a b x n j k 
2 3 g h k k h i o p y
3 4 h g y u i o p n l"))

cbind(a[, 1:2], str=apply(a[, 3:ncol(a)], 1, paste0, collapse=""))

##   V1 V2       str
## 1  1  2 abxabxnjk
## 2  2  3 ghkkhiopy
## 3  3  4 hgyuiopnl

答案 1 :(得分:1)

另一种选择:

> df$newcol <- do.call(paste0, df[,3:11])
#> df
#  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11    newcol
#1  1  2  a  b  x  a  b  x  n   j   k abxabxnjk
#2  2  3  g  h  k  k  h  i  o   p   y ghkkhiopy
#3  3  4  h  g  y  u  i  o  p   n   l hgyuiopnl

> df <- df[, c(1,2,12)]
#> df
#  V1 V2    newcol
#1  1  2 abxabxnjk
#2  2  3 ghkkhiopy
#3  3  4 hgyuiopnl