【发布时间】:2021-10-15 23:39:49
【问题描述】:
我有一个包含一列 df$condition 的数据框。它包含字符串,如“sunny”、“sunshine”、“dark”、“night”等,每行1个。现在我想在第二列df$code 中编写这些代码。如果行中 df$condition 的值包含“sun”,则df$code 中应该有 1,如果它包含“dark”或“night”,则应该有 2。否则,如果有任何不同或什么都没有,应该是 99。
【问题讨论】:
-
你应该提供一个代码示例!
-
Henrik,这是对网站上其他人的礼貌,让您在提出问题时更加努力:事实上,您是在要求 我们 提供示例数据和预期的输出结构。请提供文字数据(例如,
data.frame(...)或dput(x)的输出)和您尝试过的代码。 -
... 但是有三种直接的方法:(1)使用命名向量(
vec <- c("sun"=2,"dark"=7,...)作为与df$code <- df$condition[vec]的查找;(2)使用dplyr::case_when,作为一个答案现在建议;(3)创建一个查找dict <- data.frame(condition=c("sun","dark"), code=c(2,7))(每个唯一condition一行),然后与merge(mydf, dict, by = "condition", all.x = TRUE)进行合并/加入,以从数据中获取您想要的内容。祝你好运。 -
好吧对不起,下次我会努力的。我认为对于你们中的大多数人来说,这是一项非常容易的任务..
标签: r