簡體   English   中英

從R中的列聚合函數提取數據

[英]Extract data from column aggregate function in R

我有一個大型數據庫,使用聚合函數從中提取了數據值(x):

library(plotrix)
aggregate(mydataNC[,c(52)],by=list(patientNC, siteNC, supNC),max)

OUTPUT:

在此處輸入圖片說明

每個(x)值在此數據庫中標題為(dist)的列中都有一個對應的距離值。 提取值dist並將其添加到表中的最簡單方法是什么?

我可能先從merge()開始。 這是一個可復制的小示例,您可以用來查看發生了什么並對其進行修改以使用您的數據:

# generate bogus data and view it
x1 <- rep(c("A", "B", "C"), each = 4)
x2 <- rep(c("E", "E", "F", "F"), times = 3)
y1 <- rnorm(12)
y2 <- rnorm(12)
md <- data.frame(x1, x2, y1, y2) 

> head(md)

  x1 x2         y1         y2
1  A  E -1.4603164 -0.9662473
2  A  E -0.5247227  1.7970341
3  A  F  0.8990502  1.7596285
4  A  F -0.6791145  2.2900357
5  B  E  1.2894863  0.1152571
6  B  E -0.1981511  0.6388998


# aggregate by taking maximum of each unique (x1, x2) combination
md.agg <- with(md, aggregate(y1, by = list(x1, x2), FUN = max))
names(md.agg) <- c("x1", "x2", "y1")

>  md.agg 
  x1 x2         y1
1  A  E -0.5247227
2  B  E  1.2894863
3  C  E  0.9982510
4  A  F  0.8990502
5  B  F  2.5125956
6  C  F -0.5916491


# merge y2 into the aggregated data
md.final <- merge(md, md.agg)

> md.final

  x1 x2         y1         y2
1  A  E -0.5247227  1.7970341
2  A  F  0.8990502  1.7596285
3  B  E  1.2894863  0.1152571
4  B  F  2.5125956 -0.2217510
5  C  E  0.9982510  0.6813261
6  C  F -0.5916491  1.0348518

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM