如何选择数据并将其添加到特定行?
问题描述:
你会如何遍历一列寻找特定的字符集的值,然后,如果行有这些字符,在新的一列专门分配一个值,该行?如何选择数据并将其添加到特定行?
例如,在这个问题,我们必须在一个点分配到每一个不同意响应和零到同意的。
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`
答
这必须是一个重复,找不到一个。
无论如何,正如@Zheyuan Li指出的那样,在这种情况下可以使用ifelse
。
您可以使用grepl
发现如果文本有言“不同意”在里面。 grepl
返回一个布尔值向量,你可以将它通过包装它as.numeric
as.numeric(grepl("Disagree", df$Response))
#[1] 1 0 0 0 1 1 0 1 0 0
所以转换为数值,考虑df
作为数据框,你可以添加一个new_column
通过
df$new_column <- as.numeric(grepl("Disagree", df$Response))
+1
非常感谢。我刚刚开始使用R(和一般编码),所以我完全失去了。 –
答
根据我的理解你的问题下面的查询应该为你工作。
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;
点击链接查看相似的问题。和用户回复..就像他们告诉我的,任何人都会为你写代码.. –