划分文件并删除列中包含全部0的列

时间:2014-09-23 18:49:40

标签: r

我有这样的文件,(该文件基本上是一个列表)

"0000"
"ab" "0a"
"000000"
"0000"
"aba" "baa" "aab"
"cb" "cc" "bc" "00"
...............

现在,我想删除包含所有0的所有行以及包含特定行中所有0的那些行。例如,输出将是

"ab" "0a"
"aba" "baa" "aab"
"cb" "cc" "bc"

然后我想将此列表写入磁盘上的文件。我怎么能在R? 该列表是在R中执行函数的结果。 结果:

dput(head(data))
list("0000", c("ab", "0a"), "000000", "0000", c("aba", "baa", 
"aab"), c("cb", "cc", "bc"))

1 个答案:

答案 0 :(得分:0)

您输入的数据集为list。所以,我猜测输出也是list

  library(stringr)
  data[[1]] <- c("0a0000", "000000", "a00000")
  lst1 <- lapply(data, function(x) {x1 <- str_count(x, "0"); x[x1!=nchar(x)]})
  indx <- sapply(lst1, length)
  lst2 <- lst1[!!indx]
  datN <- as.data.frame(do.call(rbind,lapply(lst2, function(x)
                  if(length(x)<max(indx)) c(x, rep(NA, max(indx)-length(x))) 
                    else x)), 
                         stringsAsFactors=FALSE)


  datN
  #     V1     V2   V3
  #1 0a0000 a00000 <NA>
  #2     ab     0a <NA>
  #3    aba    baa  aab
  #4     cb     cc   bc