我有一個字串,就像:
"\r Joel Corry 壯舉。MNEK\r Head & Heart\r "
我想創建一個包含兩列的df,上面的字串值在“\r”之間:
| 解釋 | 歌曲 |
|---|---|
| 喬爾·科里的壯舉。MNEK | 頭與心 |
我怎么能在 R 中做到這一點?
uj5u.com熱心網友回復:
一種方法是使用strsplit:
x <- "\r Joel Corry feat. MNEK\r Head & Heart\r"
df$interpret <- trimws(strsplit(x, split = "\\r")[[1]])[2]
df$song<- trimws(strsplit(x, split = "\\r")[[1]])[3]
uj5u.com熱心網友回復:
library(data.table)
dat = data.table(raw_string = c(
"\r Joel Corry feat. MNEK\r Head & Heart\r ",
"\r Intepret 2\r Song 2\r ",
"\r Intepret 3\r Song 3\r ")
)
dat[,c("interpret","song"):= tstrsplit(str_remove_all(raw_string,"(^\r\\s?)|(\r\\s?$)"),"\r")][]
輸出:
raw_string interpret song
<char> <char> <char>
1: \r Joel Corry feat. MNEK\r Head & Heart\r Joel Corry feat. MNEK Head & Heart
2: \r Intepret 2\r Song 2\r Intepret 2 Song 2
3: \r Intepret 3\r Song 3\r Intepret 3 Song 3
uj5u.com熱心網友回復:
stringr請在下面找到使用該庫的另一種可能性
代表
- 代碼
library(stringr)
setNames(as.data.frame(str_extract_all(my_text, "(?<=\\r ). ", simplify = TRUE)), c("interpret", "song"))
- 輸出
#> interpret song
#> 1 Joel Corry feat. MNEK Head & Heart
- 資料
my_text <- "\r Joel Corry feat. MNEK\r Head & Heart\r "
由reprex 包于 2022-02-21 創建(v2.0.1)
uj5u.com熱心網友回復:
用于extract定義一個正則運算式,它 (i) 詳盡地描述了字串,但 (ii)(...)僅將您想要提取到兩個新列中的內容包裝到捕獲組中(從而有效地洗掉不在捕獲組內的任何內容)。請注意,\需要通過雙反斜杠(在 R 中)進行轉義:
library(tidyr)
df %>%
extract(str,
into = c("interpret", "song"),
regex = "\\\r (.*)\\\r (.*)\\\r")
interpret song
1 Joel Corry feat. MNEK Head & Heart
資料:
df <- data.frame(
str = "\r Joel Corry feat. MNEK\r Head & Heart\r "
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430468.html
標籤:r
上一篇:沒有變數名的向量的值
