R語言-實現(xiàn)將向量轉(zhuǎn)換成一個字符串
將向量a,b裝換成一個字符串,其中:
a=c(1,2,3,4) b=c(2,3,4,5)
為了將其轉(zhuǎn)化成一個字符串可以通過引入包stringr,使用str_c實現(xiàn),使用paste也一樣可以達到目的,如下:
library(stringr) a_b=str_c(a,b,collapse='') paste(a,b,sep='')
輸出為:
[1] "12233445"
在實際的數(shù)據(jù)處理中看可以用來給數(shù)據(jù)框建聯(lián)合索引,比如數(shù)據(jù)框中需要用到的索引列聯(lián)接成一列,則在實際中可以方便很多,避免很多麻煩,但是需要注意的是最后在每列中間加一個字符比如空字符來保證一一映射。比如數(shù)據(jù)框的前兩行的數(shù)據(jù)為:
A1 A2 A3 A4 1 1 1 11 4 2 1 11 1 5
如果使用前三列索引即A1,A2,A3。如果不加入特殊字符則第一行和第二行連接的字符都為:
[1] "1111"
二者索引是相同的,所以需要加入特殊字符避免這種情況,比如加入空格后兩行數(shù)據(jù)的連接后為:
[1] "1 1 11" [2] "1 11 1"
這兩個字符串是不相同的。
補充:R語言中怎么將一個字符串向量合成一個大字符串
> test <- c("a", "b", "c") > t3 <- paste(test, collapse = "") > t3
[1] “abc”
補充:用R語言解析字符串
常見字符串的字符串操作:合并與分割。
1. 合并字符串
paste函數(shù)用于合并字符串,其基本形式為 paste( <字符串>..., sep=" "),其中的參數(shù)如表2-13所示:
示例代碼如下:
> data <- "4分50秒" > data <- paste("網(wǎng)站停留時間:","3小時",data,sep="") > data
[1] "網(wǎng)站停留時間:3小時4分50秒"
2. 分割字符串
strsplit 函數(shù)可以依據(jù)特定字符串來把字符串分割為列表,其中用于分割的字符串將不再出現(xiàn)。下面,將把字符串“網(wǎng)站停留時間:3小時4分50秒”轉(zhuǎn)化為用戶停留時間的實數(shù)(以秒為單位)。
詳細代碼,保存在test.R中,如下:
data <- "4分50秒" data <- paste("網(wǎng)站停留時間:","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)
效果如下:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言 install.packages 無法讀取索引的解決方案
這篇文章主要介紹了R語言 install.packages 無法讀取索引的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04