将不同变量的值存储在一个变量中
Posted
技术标签:
【中文标题】将不同变量的值存储在一个变量中【英文标题】:Store values from different variables in one variable 【发布时间】:2022-01-22 18:08:06 【问题描述】:我正在使用一个将国家特定信息存储在不同变量中的数据集,我想将其组合成一个变量。感觉这应该是一个很容易的练习,但我想不通,我在这里找不到任何答案。
假设数据如下所示:
df <- data.frame(country = c("BE", "BE", "BE", "NL", "NL", "NL"),
year = c(2010, 2010, 2010, 2010, 2010, 2010),
party_NL = c(NA, NA, NA, "A", "B", "B"),
party_BE = c("C", "D", "E", NA, NA, NA))
country year party_NL party_BE
1 BE 2010 <NA> C
2 BE 2010 <NA> D
3 BE 2010 <NA> E
4 NL 2010 A <NA>
5 NL 2010 B <NA>
6 NL 2010 B <NA>
我需要的是以下内容:
country year party_NL party_BE party
1 BE 2010 <NA> C C
2 BE 2010 <NA> D D
3 BE 2010 <NA> E E
4 NL 2010 A <NA> A
5 NL 2010 B <NA> B
6 NL 2010 B <NA> B
猜测必须应用一些循环。再一次,这听起来很容易,我提前道歉。
谢谢
【问题讨论】:
【参考方案1】:您可以在 dplyr 中使用coalesce
:
df %>%
mutate(party = coalesce(party_NL, party_BE))
输出:
country year party_NL party_BE party
1 BE 2010 <NA> C C
2 BE 2010 <NA> D D
3 BE 2010 <NA> E E
4 NL 2010 A <NA> A
5 NL 2010 B <NA> B
6 NL 2010 B <NA> B
【讨论】:
太棒了!不知道这个功能【参考方案2】:使用dplyr
中的mutate
,这样就可以了:
require(dplyr)
df %>%
mutate(party = ifelse(is.na(party_NL), party_BE, party_NL))
【讨论】:
谢谢!这似乎也有效。但是,我的实际变量列表要长得多,这使得代码有点长并且容易出错。以上是关于将不同变量的值存储在一个变量中的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 awk 中使用两个不同的字段分隔符并将两者的值存储在变量中?