我有这样的文件,(该文件基本上是一个列表)
"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"))
答案 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