将向量a,b装换成一个字符串,其中:
a=c(1,2,3,4) b=c(2,3,4,5)
为了将其转化成一个字符串可以通过引入包stringr,使用str_c实现,使用paste也一样可以达到目的,如下:
library(stringr) a_b=str_c(a,b,collapse='') paste(a,b,sep='')
输出为:
[1] "12233445"
在实际的数据处理中看可以用来给数据框建联合索引,比如数据框中需要用到的索引列联接成一列,则在实际中可以方便很多,避免很多麻烦,但是需要注意的是最后在每列中间加一个字符比如空字符来保证一一映射。比如数据框的前两行的数据为:
A1 A2 A3 A4 1 1 1 11 4 2 1 11 1 5
如果使用前三列索引即A1,A2,A3。如果不加入特殊字符则第一行和第二行连接的字符都为:
[1] "1111"
二者索引是相同的,所以需要加入特殊字符避免这种情况,比如加入空格后两行数据的连接后为:
[1] "1 1 11" [2] "1 11 1"
这两个字符串是不相同的。
补充:R语言中怎么将一个字符串向量合成一个大字符串
> test <- c("a", "b", "c") > t3 <- paste(test, collapse = "") > t3
[1] “abc”
补充:用R语言解析字符串
常见字符串的字符串操作:合并与分割。
1. 合并字符串
paste函数用于合并字符串,其基本形式为 paste( <字符串>..., sep=" "),其中的参数如表2-13所示:
示例代码如下:
> data <- "4分50秒" > data <- paste("网站停留时间:","3小时",data,sep="") > data
[1] "网站停留时间:3小时4分50秒"
2. 分割字符串
strsplit 函数可以依据特定字符串来把字符串分割为列表,其中用于分割的字符串将不再出现。下面,将把字符串“网站停留时间:3小时4分50秒”转化为用户停留时间的实数(以秒为单位)。
详细代码,保存在test.R中,如下:
data <- "4分50秒" data <- paste("网站停留时间:","3小时",data,sep="") data <- strsplit(strsplit(data,split=":")[[1]][2], split="小时"); data <- unlist(data); h <- as.numeric(data[1]); min.sec <- data[2]; min.sec <- unlist(strsplit(min.sec,split="分")) min <- as.numeric(min.sec[1]) sec <- min.sec[2]; sec <- unlist(strsplit(sec,split="秒")); sec <- as.numeric(sec[1]) times <- 3600*h+60*min+sec list <- "times=" print("times=") print(times)
效果如下:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。