R-如何使用if语句和多个条件(因子变量)修复函数

时间:2019-06-19 04:49:43

标签: r if-statement

我有一个df,其中有两个相关的列,具有不同长度的1.words单词,另一个具有2个音节标签,都是因变量。现在,在第三列(3.结构)中,我想添加有关音节(Vowel或辅音)的组成部分的信息。为此,我将单词和音节的标签用作条件。

(word <- "dog", "parent", "extraordinary")
(labels <- "1", "2", "3","Final", "Mono")
(df <- data.frame(word,labels))

我以前使用过非常相似的代码,并且可以正常工作,但现在不再使用了。我最近上传了R(3.6.0),无法确定问题出在哪里。我还更新了所有我认为与此相关的软件包,但仍然没有运气。我只得到其中只有简历的专栏。我的df也更大,尽管我不认为这是问题所在。

Classes ‘rowwise_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 4458 obs. of  27 variables: 

这是我的代码的摘要:

getStructure <- function(word, labels) {
  if (str_detect(word, 'extraordinary') & labels == '2') {
    return ('CCV')  
  } else {
    return("CV")
  }
  }

df <- df %>%
  rowwise() %>% 
  mutate(structure =getStructure(word, labels))

我需要的示例:

|word  | labels | structure
---------------------------
|dog   | Mono   | CVC 
|parent| 1      | CV
|parent| Final  | CVC

我想使用一个函数,并在必要时指定每个单词和音节。之后,剩下的就是所有简历。

但是,我在所有行中都只有一个新的CV列,并且

Warning message:
In if (str_detect(word, "dog") & labels == "1") { :
  the condition has length > 1 and only the first element will be used

0 个答案:

没有答案