Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何选择数据并将其添加到特定行?_R_Loops - Fatal编程技术网

R 如何选择数据并将其添加到特定行?

R 如何选择数据并将其添加到特定行?,r,loops,R,Loops,如何循环一列中的值以查找特定的字符集,然后,如果该行具有这些字符,如何为新列中的该行指定特定的值 例如,在这个问题中,我们必须给每个不同意的回答分配一个点,给同意的回答分配零 Id Gender Age Participate Question Response Score <int> <chr> <int> <int> <chr> <

如何循环一列中的值以查找特定的字符集,然后,如果该行具有这些字符,如何为新列中的该行指定特定的值

例如,在这个问题中,我们必须给每个不同意的回答分配一个点,给同意的回答分配零

     Id   Gender   Age Participate Question            Response Score
    <int>  <chr> <int>       <int>    <chr>               <chr> <dbl>
1     16   Male    20           1       Q1   Slightly Disagree     0
2     17   Male    40           1       Q1    Definitely Agree     0
3     18   Male    33           1       Q1    Definitely Agree     0
4     19   Male    18           1       Q1    Definitely Agree     0
5     20   Male    24           1       Q1 Definitely Disagree     0
6     21 Female    42           1       Q1   Slightly Disagree     0
7     22 Female    19           1       Q1      Slightly Agree     0
8     28 Female    49           1       Q1   Slightly Disagree     0
9     29 Female    17           1       Q1      Slightly Agree     0
10    31   Male    18           1       Q1      Slightly Agree     0`
Id性别年龄参与问题回答分数
1 16男20 1 Q1轻微不同意0
2 17男性40 1 Q1绝对同意0
3 18男33 1 Q1绝对同意0
4 19男18 1 Q1绝对同意0
5 20男24 1 Q1绝对不同意0
6 21女性42 1 Q1稍微不同意0
7 22女性19 1 Q1略微同意0
8 28女性49 1 Q1稍微不同意0
9 29女性17 1 Q1略微同意0
10 31男性18 1 Q1略微同意0`
查看:

从中选择* 更新位置


这一定是重复的,找不到

无论如何,正如@Zheyuan Li所指出的,在这种情况下,您可以使用
ifelse

您可以使用
grepl
查找文本中是否有“不同意”一词
grepl
返回一个布尔向量,您可以将其包装为.numeric

as.numeric(grepl("Disagree", df$Response))

#[1] 1 0 0 0 1 1 0 1 0 0
因此,考虑到
df
作为您的数据帧,您可以通过

df$new_column <- as.numeric(grepl("Disagree", df$Response))

df$new_column根据我对您下面问题的理解,查询应该适合您

UPDATE yourSchema.yourTable anAlias
SET Score = finalData.Score
FROM
  (SELECT Id,
          CASE
              WHEN Response LIKE '%Disagree%' THEN 1
              ELSE 0
          END AS score
   FROM yourSchema.yourTable) finalData
WHERE anAlias.Id = finalData.Id;

点击链接查看类似问题。而用户则回复。。就像他们告诉我的,任何人都会为你写代码的。非常感谢。我刚开始写R(和一般的编码),所以我完全迷路了。