转置多列并将其过滤为单个向量

时间:2018-10-19 04:03:48

标签: r

我有笨拙格式的CSV(国家气象服务“ DATACARD”格式-第3页,here的每月数据示例),我希望找到一种更好的方式来转置和过滤NA。我认为从gather()tidyverse可能有些地方,但是我对所有方法持开放态度。

a <- c(10.5,14,16,20,23)
b <- c(11,15,17,21,24)
c <- c(12,NA,18,22,25.2)
d <- c(13,NA,19,NA,26)

rawcsv  <- data.frame(a,b,c,d)
rawcsv_singlecolumn <- data.frame(singlecolumn=c(t(rawcsv)))
rawcsv_NAsremoved_thedesiredvector <- na.omit(rawcsv_singlecolumn)

desiredvector <-  c(10.5,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25.2,26)

1 个答案:

答案 0 :(得分:3)

我们可以从数据集中提取单列

rawcsv_NAsremoved_thedesiredvector[[1]]

如果我们需要使用tidyverse

library(tidyverse)
rownames_to_column(rawcsv, 'rn') %>% 
    gather(key, value, -rn, na.rm = TRUE) %>% 
    arrange(as.integer(rn)) %>% 
    pull(value)