gpt4 book ai didi

r - 数据帧中非唯一元素的索引

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

如何在下一个数据帧中提取重复元素的列名(或行和列索引)?

            V1         V2           V3           V4
PC1 0.5863431 0.5863431 3.952237e-01 3.952237e-01
PC2 -0.3952237 -0.3952237 5.863431e-01 5.863431e-01
PC3 -0.7071068 0.7071068 1.665335e-16 3.885781e-16

例如 0.5863431等于 0.5863431,因此 "V1""V2"是列名。

在该数据框中,我想获得:
[1] "V1" "V2" "V3" "V4"

如您所见,只查找第一行的结果。

第二个例子:
            V1         V2          V3         V4
PC1 -0.5987139 -0.5987139 -0.03790446 0.5307039
PC2 -0.0189601 -0.0189601 -0.99315168 -0.1137136
PC3 0.3986891 0.3523926 -0.11045319 0.8394442

结果:
[1] "V1" "V2"

最佳答案

使用whichapply的方法略有不同

# convert to matrix
mat1 <- as.matrix(df1)
# find duplicates and store them
dups <- mat1[which(duplicated(c(mat1)))]
# identify columns containing a value in dups
names(which(apply(mat1, 2, function(x) any(x %in% dups))))
#[1] "V1" "V2" "V3" "V4"

mat2 <- as.matrix(df2)
dups <- mat2[which(duplicated(c(mat2)))]
names(which(apply(mat2, 2, function(x) any(x %in% dups))))
#[1] "V1" "V2"

关于r - 数据帧中非唯一元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37377153/

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