gpt4 book ai didi

r - R优化数据表的grep

转载 作者:行者123 更新时间:2023-12-03 17:21:58 25 4
gpt4 key购买 nike

我有一系列空的大型数据表。它们看起来像这样(但更大,约6000列,介于1到100000行之间):

apple = c(NA, NA, NA)
orange = c(NA, NA, NA)
pear = c(NA, NA, NA)
demo <- data.table(apple, orange, pear)
row.names(demo) <- c("pineapples", "blood oranges", "grapes")


我正在进行模式匹配,以查看行名是否包含列名,然后将相应的单元格标记为TRUE / FALSE。我写了一个循环,效果很好,但是速度非常慢。

for(i in 1:ncol(demo)) {
demo[, i] <- ifelse(grepl(colnames(demo)[i],
rownames(demo)),
TRUE,
FALSE)
}


有谁知道如何更快地做到这一点?可以使用java,但我更喜欢在纯R中解决它。

最佳答案

我们可以使用FALSE值创建数据集,因为'data.table'中不允许使用row.names,请创建这些名称的向量

rn <- c("pineapples", "blood oranges", "grapes")
for(j in seq_along(demo)){
set(demo, i= grep(names(demo)[j], rn), j=j, value = TRUE)
}


数据

 demo <- as.data.table(matrix(FALSE,3,3, 
dimnames=list(NULL, c('apple', 'orange', 'pear'))))

关于r - R优化数据表的grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com