我有一个由以下条目组成的数据框:
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?
中做到这一点答案 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