保持R中数据框中变量的最长值

时间:2017-07-21 17:04:43

标签: r

我刚开始用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”方法呢?

1 个答案:

答案 0 :(得分:1)

akrun打败了我apply解决方案......所以不得不想到另一种方式......

coalesce中的

dplyr可以实现此目的。如果所有这些变量都具有相同的前缀,则可以使用starts_with(感谢Flick先生)

library(dplyr)
dat$state <- do.call("coalesce", dat %>% select(starts_with("State_")))