对于R中的循环跳过列
Posted
技术标签:
【中文标题】对于R中的循环跳过列【英文标题】:For loop skipping columns in R 【发布时间】:2022-01-19 22:33:10 【问题描述】:我想在我的数据集 (dat
) 的 20 列中连接文本,跳过所有 NA 值。
例如,如果第一行在第 1 列中有“cat”,在第 2 列中有“dog”,在第 3 列中有 NA,我想在新列中将其编译为“cat dog”(dat$results
) .这是我所拥有的:
m <- ""
for(i in 1:20)
if(!is.na(dat[,i]))
m <- paste(m, dat[,i], sep = " ")
else
next
dat$results <- m
循环只运行到第 3 列(我的第一行是 NA)。第一行没有问题,但是在第 3 列中确实有文本的其他行没有编译该列。我可以在这里做什么?
【问题讨论】:
【参考方案1】:也许只需一次连接所有列,然后删除 na
和双空格
dat$result <- gsub('\\s\\s', ' ', gsub('NA', '', do.call(paste, d[,1:20])))
【讨论】:
非常感谢!我总是让事情变得比必要的更难:')以上是关于对于R中的循环跳过列的主要内容,如果未能解决你的问题,请参考以下文章