【问题标题】:How can I define if statements depending on the type of the separation using strsplit in R?如何根据在 R 中使用 strsplit 的分隔类型定义 if 语句?
【发布时间】:2021-10-29 21:53:51
【问题描述】:

我正在尝试使用textInput 创建一个闪亮的应用程序。这个想法是用户可以输入一个单词列表来使用它。

我找到了这个post,它允许我将单词拆分成一个向量。但是,这取决于用户决定如何在应用程序中输入单词。我想知道是否可以创建具有分隔类型的 if 语句。例如,如果用户这样写:

  1. word1,word2,word2 或
  2. word1 word2 word3 或
  3. 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 语句,以便仅将所有单词更改为一种类型。

有人可以帮助我吗?

提前致谢

问候

【问题讨论】:

    标签: r shiny split textinput strsplit


    【解决方案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将所有单词分别设为大写或小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2015-04-07
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多