如何通过对 r 中的 2 列进行分组来确定唯一值的长度

用户12150823

我正在尝试根据 2 列有条件地提取唯一值的数量。我想要做的是在考虑“变量”和“日期”时保存唯一观察的长度,并将每个唯一观察保存为列表,以便我可以通过循环运行每个观察。下面是数据框的一个子集和我一直在运行的代码。ncurves 和 ids 中都应该有 9 个独特的观察结果。我在 ncurves 中得到 2 个,ids 保存为数据帧,而不是像我想要的那样通过循环运行的列表。

a <- structure(list(LightIntensity = c(0L, 112L, 0L, 112L, 0L, 112L, 0L, 112L, 0L, 112L, 0L, 
112L, 0L, 112L, 0L, 112L, 0L, 112L), variable = c(221L, 221L, 244L, 244L, 12L, 12L, 221L, 
221L, 244L, 244L, 12L, 12L, 221L, 221L, 12L, 12L, 244L, 244L), value = c(-1.21625718690742, 
0.192572605693232, -1.21625718690742, 0.226570039268424, -0.437571128774482, 
0.167029555798728, -0.344666861319387, -0.099033581577414, -0.341605586260893, 
0.158985219436985, -0.0728378731631007, 0.108468868197142, -0.227259158534414, 
-0.121668829961881, -0.504828403085384, 0.37919920958843, -0.674980508632225, 
0.215847519075345), Species = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L), .Label = c("Montipora capitata", "Porites compressa"), class = 
"factor"), Bleach = structure(c(1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 
2L, 2L, 2L), .Label = c("Bleach", "Non-bleach"), class = "factor"), Date = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("2019-09-16", 
"2019-10-02", "2019-10-16"), class = "factor")), row.names = c(1L, 
2L, 28L, 29L, 181L, 182L, 361L, 362L, 481L, 482L, 541L, 542L, 761L, 762L, 891L, 892L, 921L, 
922L), class = "data.frame")

n <- length(unique(a[c("variable", "Date")]))
ids <- unique(a[c("variable", "Date")])
27 φ 9

要提取 data.frame 中的唯一组合,您可以执行以下操作:

a[!duplicated(a[c("variable", "Date")]),]

    LightIntensity variable       value            Species     Bleach       Date
1                0      221 -1.21625719 Montipora capitata     Bleach 2019-09-16
28               0      244 -1.21625719  Porites compressa Non-bleach 2019-09-16
181              0       12 -0.43757113 Montipora capitata Non-bleach 2019-09-16
361              0      221 -0.34466686 Montipora capitata     Bleach 2019-10-02
481              0      244 -0.34160559  Porites compressa Non-bleach 2019-10-02
541              0       12 -0.07283787 Montipora capitata Non-bleach 2019-10-02
761              0      221 -0.22725916 Montipora capitata     Bleach 2019-10-16
891              0       12 -0.50482840 Montipora capitata Non-bleach 2019-10-16
921              0      244 -0.67498051  Porites compressa Non-bleach 2019-10-16

要获取索引,您可以执行以下操作:

(ids <- which(!duplicated(a[c("variable", "Date")])))
[1]  1  3  5  7  9 11 13 15 17

length(ids)
[1] 9

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过在数据框R中创建列值列表来对列值进行分组

通过仅从两列中获取唯一值来对 pyspark 数据框的列进行分组

对于R data.table,如何使用uniqueN()来对多列中的唯一/不同值进行计数?

如何通过ggplot2 / R中填充类别之一的值来订购堆积条形图x类别

通过R中的列内的唯一值对数据帧进行子集

如何通过与各自行进行计算来合并R中数据框的2列?

如何基于R中的另一列对唯一值进行排序

如何按 r 中的一列中的不同值进行分组,以便生成密度图?

如何通过使用两列来对熊猫进行分组,但如何合并组以获得这两列中的键的唯一组合

R) 如何将唯一 ID 中的 2 个唯一值作为该唯一 ID 的两个新列移动?

如何对 R 数据框中的唯一值进行排名

如何通过R中的组/因子计算NA值的长度?

如何根据另一列中的唯一值对一列中的值进行分组?

如何通过R中的字典映射列

如何在Python Pandas中对具有计数唯一值的多列进行分组

如何通过在python中添加同一列的2个不同行值的值来估算特定行值

如何通过仅获取此数据帧中2列的非NA值来对数据帧进行子集

如何通过R中的可变列数进行子集/求和

如何通过检查2列中的值来将1 df的列映射为另一个df

如何通过对r中包含向量的列进行解折叠来拉伸数据帧?

如何通过R中唯一值的数量过滤数据

如何根据R中其他两列的分组来标准化列中的值?

如何使用php在2列中打印唯一值

通过对另一列中的值进行分组,将计数分配给另一列中的唯一值

如何通过R中的函数更改原始矩阵中的值?

根据列中的唯一值在R中进行汇总

通过使用R中的汇总来查找汇总度量,非NA值和特定值进行分组

如何通过R中的另一个列值过滤列值

通过考虑r(2)中的分组Q矩阵来操纵字符向量