我刚开始用r编程,所以当涉及到一些简单的任务时,我有点不稳定。我有一个拥有多年数据的data.frame。我每年的一个变量是州。我的data.frame看起来像这样:
dat <- read.table(text = "ID State_14 State_15 State_16
1 Alabama Alabama NA
2 California NA NA
3 Texas Texas Texas", header = TRUE)
我只想要一个状态变量(该变量的元素将是阿拉巴马州,加利福尼亚州,德克萨斯州)。我在想找到每一行中最长的元素,并将其作为我的新状态变量的值。我该怎么做?有没有更好的“r”方法呢?
答案 0 :(得分:1)
akrun打败了我apply
解决方案......所以不得不想到另一种方式......
coalesce
中的 dplyr
可以实现此目的。如果所有这些变量都具有相同的前缀,则可以使用starts_with
(感谢Flick先生)
library(dplyr)
dat$state <- do.call("coalesce", dat %>% select(starts_with("State_")))