gpt4 book ai didi

R:计算多个 (!) 列中字符串的多次出现

转载 作者:行者123 更新时间:2023-12-04 04:48:19 26 4
gpt4 key购买 nike

并且已经感谢大量关于我的(尚未问到的)问题的文章,这让我走得更远!

但是,我还是忍不住,但提出了另一个计数问题:

我有一个大约 30,000 行和 5 列的大数据集,里面填满了名字。 df 中总共有大约 14,000 个不同的名称。现在我感兴趣的是名称在一行中的共现,但与名称是否在第 1、2、3 列等中无关。

例如,矩阵看起来像这样(可能编码很糟糕):

testmatrix<- matrix(nrow=52, ncol=5)


for (i in 1:5) {

testmatrix[,i]<-(sample(letters, replace=T))

}

data<-as.data.frame(testmatrix)

我的最终矩阵应该(在测试示例中)有 26 行和 26 列(在“真实”数据集 14,000x14,000 中),所有共现。我可以和 aggregate 一起工作(我想),但随后我必须为每个列二元组(1-2、1-3、1-4 等)生成大量 dfs - 也许有一个独特且更简单的函数可以做到这一点(甚至可能也在 plyr 包中?)。

已经谢谢大家了,我希望这对你来说很容易;)

最好的,

最佳答案

像这样的事情可能会帮助你开始......

# an example matrix of letters
m <- matrix(sample(letters, 30, replace=T), nrow=6, ncol=5)
m

# the unique values in the matrix
vals <- sort(unique(as.vector(m)))

# rearrange the data so that each value is a column
bigm <- t(apply(m, 1, function(row) match(vals, row, nomatch=0)))
colnames(bigm) <- vals
bigm

# count the co-occurences of each value (diagonal is total number of rows with that value)
crossprod(bigm>0)

关于R:计算多个 (!) 列中字符串的多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17840797/

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