如何根据在 R 中使用 strsplit 的分隔类型定义 if 语句?
Posted
技术标签:
【中文标题】如何根据在 R 中使用 strsplit 的分隔类型定义 if 语句?【英文标题】:How can I define if statements depending on the type of the separation using strsplit in R? 【发布时间】:2021-10-29 21:53:51 【问题描述】:我正在尝试使用textInput
创建一个闪亮的应用程序。这个想法是用户可以输入一个单词列表来使用它。
我找到了这个post,它允许我将单词拆分成一个向量。但是,这取决于用户决定如何在应用程序中输入单词。我想知道是否可以创建具有分隔类型的 if 语句。例如,如果用户这样写:
-
word1,word2,word2 或
word1 word2 word3 或
word1、word2、word3 或
其他组合。
问题是我需要一个最终向量以便以后使用它。
我想要的分色类型示例:
#1
unlist(strsplit("a, b, c", ", "))
[1] "a" "b" "c"
#2
unlist(strsplit("a,b,c", ","))
[1] "a" "b" "c"
#3
unlist(strsplit("a b c", " "))
[1] "a" "b" "c"
有没有办法查看分离的类型? 喜欢...
if sep="," or sep=", " or sep=" " do something
另一方面,我想知道如果用户决定将所有内容都设为小写或大写,是否有可能使用 if 语句,以便仅将所有单词更改为一种类型。
有人可以帮助我吗?
提前致谢
问候
【问题讨论】:
【参考方案1】:您可以使用|
将多个分隔符传递给strsplit
。
#split on comma followed by zero or more whitespace OR one or more whitespace
split_list <- function(x) unlist(strsplit(x, ',\\s*|\\s+'))
split_list("a, b, c")
#[1] "a" "b" "c"
split_list("a,b,c")
#[1] "a" "b" "c"
split_list("a b c")
#[1] "a" "b" "c"
使用toupper
/tolower
将所有单词分别设为大写或小写。
【讨论】:
以上是关于如何根据在 R 中使用 strsplit 的分隔类型定义 if 语句?的主要内容,如果未能解决你的问题,请参考以下文章
在 Pig 中投射 Flatten 和 Strsplit 的输出
当需要的拆分字符向量对于变量 (R) 中的所有观测值不一致时使用 strsplit
R语言使用sapply函数抽取strsplit分裂后的结果数据并使用cbind纵向合并到dataframe数据列中使用order函数对dataframe数据行进行排序