R语言 拆分分隔的单值字符向量

bnl4lu3b  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(189)

我有一个用户提供的字符串,如"Mon,Tue,Wed,Thu,Fri"。请注意,这个值是用户提供的输入。用户可以提供类似"Mon,Tue,Wed"等的内容。
我想把它作为矢量,用于绘图和进一步的分析。
由于用户提供的值是一个逗号分隔的值,因此我们需要将该值分隔为单个值,然后构造向量。
有没有直接构建载体的方法。
也就是说,我应该从“Mon,Tue,Wed,Thu,Fri”中得到一个向量。正如预期的那样,下面的代码返回一个单值向量。

> weekdays <- c(days)

> print(weekdays)
[1] "Mon,Tue,Wed,Thu,Fri"

但我需要下面这样的东西

> days <- c("Mon","Tue","Wed","Thu","Fri")
> print(days)
[1] "Mon" "Tue" "Wed" "Thu" "Fri"

请注意,我不是在阅读CSV文件,我只是试图读取用户提供的单个CSV行作为向量。

l7mqbcuq

l7mqbcuq1#

您可以使用strsplit来实现此目的:

wkdays <- "Mon,Tue,Wed,Thu,Fri"
unlist(strsplit(wkdays, ","))

这给出:

> unlist(strsplit(wkdays, ","))
[1] "Mon" "Tue" "Wed" "Thu" "Fri"

另一种方法是使用scan

scan(text = wkdays, sep = ",", what = character())

这给出了相同的结果。

csbfibhn

csbfibhn2#

我们可以使用stringr::str_split_1(在使用tidyverse时自动加载):

library(stringr)
str_split_1("foo,bar", ",")
[1] "foo" "bar"

对我来说,与已接受的解决方案相比,这感觉更清晰一些https://www.tidyverse.org/blog/2022/12/stringr-1-5-0/#splitting。

相关问题