【问题标题】:summary statistics for a variable based on another variable基于另一个变量的变量的汇总统计
【发布时间】:2020-10-01 17:38:43
【问题描述】:

我试图找出 ID 中有多少个 x 值重复了一些值,然后根据新结果找到整体的最小值、最大值、IQR 和中值;

ID <- c("ID004", "ID004", "ID004", "ID004", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID006", "ID009", "ID009", "ID009", "ID009", "ID009", "ID009", "ID020", "ID020")
D <- c("CMP-001", "CMP-001","CMP-001","CMP-001","CMP-001", "CMP-001","CMP-002", "CMP-002", "CMP-002", "CMP-003", "CMP-003", "CMP-003", "CMP-004", "CMP-004", "CMP-004", "CMP-001", "CMP-001", "CMP-001", "CMP-001", "CMP-002", "CMP-002", "CMP-001", "CMP-001")
X <- c(3,3,3,3,1,1,3,3,3,1,1,1,4,4,4,4,4,4,4,2,2,2,2)
data <- data.frame(ID, D, X)

我们首先找出每个 ID 有多少 x 值;

ID.       No. of X values
ID004.          1
ID006.          4
ID009           2
ID020           1

那么根据这个结果,我们应该得到以下结果;

                          Min.    Median.    Max.     IQR
Number of X per ID        1         1.5        4      3-1

我认为我们需要创建一个新变量,其中包含每个 ID 的 X 值。然后找到新变量的汇总统计数据

感谢您的帮助

【问题讨论】:

    标签: r structure summary


    【解决方案1】:

    希望这个答案:

    > data %>% group_by(ID) %>% summarise(Min = min(X), Median = median(X), Max = max(X), IQR = IQR(X), No_of_X_values = length(rle(X)[[1]]))
    `summarise()` ungrouping output (override with `.groups` argument)
    # A tibble: 4 x 6
      ID      Min Median   Max   IQR No_of_X_values
      <chr> <dbl>  <dbl> <dbl> <dbl>          <int>
    1 ID004     3      3     3   0                1
    2 ID006     1      3     4   2.5              4
    3 ID009     2      4     4   1.5              2
    4 ID020     2      2     2   0                1
    > 
    

    可以将 x 值的 ID 和 No 存储在一个新的数据框中,并对 x 值的数量进行汇总统计:

    > x_values <- data %>% group_by(ID) %>% summarise(No_of_X_values = length(rle(X)[[1]]))
    `summarise()` ungrouping output (override with `.groups` argument)
    > x_values
    # A tibble: 4 x 2
      ID    No_of_X_values
      <chr>          <int>
    1 ID004              1
    2 ID006              4
    3 ID009              2
    4 ID020              1
    > summary(x_values$No_of_X_values)
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
        1.0     1.0     1.5     2.0     2.5     4.0 
    

    【讨论】:

    • 感谢您的尝试,但这不是正确的答案,我认为我们需要创建一个新变量,其中包括每个 ID 的 X 值。然后找到新变量的汇总统计数据。
    • 好的,已经添加了变量,该变量具有 X 中每个变量的计数,如果您需要不同格式的结果,请分享一些示例输出。
    • 您是否想要@KarthikS 在上述答案中的count_per_X 列上的汇总统计信息?试试data %&gt;% group_by(ID) %&gt;% summarise(n=n()) %&gt;% summary()
    • 您添加的变量应该与我的问题中的第一个结果匹配。 (即 ID004 只有 1 个值,即 3 但重复,第二个 ID006 有 4 个值,即 (1,3,1,4) 等
    • 你的意思是X中的唯一值的ID? data %&gt;% group_by(ID) %&gt;% summarise( unique=unique(X)) %&gt;% summary()
    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 2021-08-07
    • 1970-01-01
    • 2023-01-20
    • 2019-09-01
    • 2015-08-11
    • 1970-01-01
    • 2020-10-27
    相关资源
    最近更新 更多