R检查一行字符串,如果相等,则分配相等的ID,耗时更少

阿雷福

我对R来说还很陌生,想知道这里的人是否对我的问题有更好的解决方案,因为我的时间太浪费了。我知道R不是非常“ for-loop-friendly”,所以我相信有更好的方法来解决这个问题。

我有一个数据框,其中x是文本字符串,y是数字id:

x = c("a", "b", "c", "b", "a")
y = c(1,2,3,4,5)
df <- data.frame(x, y)

我希望a在x列中找到所有匹配项,并为它们分配与y中第一个相同的数值。我已经解决了以下问题:

library(foreach)
library(iterators)

for(i in 1:NROW(df)) {
  for(j in i:NROW(df)) {
    if(df$x[j] == df$x[i]){
      df$y[j] <- df$y[i]
    }
    j = j + 1
  }
  i = i + 1
}

问题是,我有一个相当大的数据集,这使得该过程需要很多时间!希望这里的任何人都知道一个更省时的选择!

亨克

如果您的数据集确实很大,那么data.table可能是最快的解决方案(请参阅此处的基准)。

library(data.table)
setDT(df)

df[, y := first(y), by = x]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果相等,如何分割字符串数组的元素?

来自分类Dev

Java检查字符串是否相等

来自分类Dev

C ++检查字符串元素是否相等

来自分类Dev

引用相等的字符串

来自分类Dev

搜索相等的字符串?

来自分类Dev

搜索相等的字符串?

来自分类Dev

在一列行中字符串数是否相等的比较公式

来自分类Dev

如何检查字符串是否为null并在同一行中分配其值

来自分类Dev

如果一列值相等而另一列不相等,则忽略 SQL 中的一行

来自分类Dev

查找应该相等的不同字符串之间的相等性

来自分类Dev

MATLAB:表的行数相等或字符串的字词相等

来自分类Dev

在一个条件语句中检查 2 个字符串的相等性和可空性

来自分类Dev

Java中的字符串相等

来自分类Dev

SQL:选择单词相等的字符串

来自分类Dev

更改字符串以使其相等

来自分类Dev

比较字符串是否相等

来自分类Dev

相等字符串之间的差异

来自分类Dev

在字符串相等的地方领先

来自分类Dev

向量中的字符串相等

来自分类Dev

字符串不相等

来自分类Dev

将字符串分成相等的部分

来自分类Dev

字符串比较是否相等

来自分类Dev

比较字符串是否相等

来自分类Dev

比较相等的字符串返回false

来自分类Dev

Android中的字符串相等

来自分类Dev

如何检查一行是否包含字符串列表中的特定字符串?

来自分类Dev

比较行数据与上一行的数据(如果相等),则状态为TRUE(使用Python)

来自分类Dev

在字符串列表中计算相等的字符串并使它们唯一

来自分类Dev

如何检查矩阵中每一行/列的相等性?