【发布时间】:2020-02-18 22:08:35
【问题描述】:
我想根据现有列的条件向数据框 df 添加一个新列,例如,
df$TScore = as.factor(0)
df$TScore =
if_else(df$test_score >= '8.0', 'high',
if_else(!is.na(df$test_score), 'low', 'NA'))
我面临的问题是,在某些情况下,TScore 是我所期望的,即当分数为 8 或更高时它是“高”,但在某些情况下它是不正确的。 上面的代码有错误吗?此数据中有很多 NA。
我还在为如何使用 dplyr() 编写它而苦苦挣扎。到目前为止,我已经写了这个:
df$TScore = df %>%
filter(test_score >= 8) %>%
mutate(TScore = 'high')
但正如我们所料,尺寸不匹配。给出以下错误:
Error in `$<-.data.frame`(`*tmp*`, appScore, value = list(cluster3 = c(1L, : replacement has 126 rows, data has 236
任何建议将不胜感激。
【问题讨论】:
标签: r if-statement dplyr