[英]How do you subset a data frame that has different values for the same two columns in R
我有這個數據框:
dput(DF)
structure(list(Metrics = c("db1.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)",
"db2.Tablespace_Space_Used_(%)", "db2.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db2.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db2.Tablespace_Space_Used_(%)",
"db2.Tablespace_Space_Used_(%)", "db2.Tablespace_Space_Used_(%)",
"db2.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)",
"db1.Tablespace_Space_Used_(%)", "db1.Tablespace_Space_Used_(%)"
), Date = c(1416257563.98707, 1416257563.98707, 1416257563.98707,
1416257563.98707, 1416257563.98707, 1416257563.98707, 1416257563.98707,
1416257563.98707, 1416257563.98707, 1416257563.98707, 1416257563.98707,
1416257563.98707, 1416257563.98707, 1416257563.98707, 1416257563.98707,
1416257563.98707, 1416257563.98707, 1416257563.98707, 1416257563.98707,
1416257563.98707), Value = c(0, 0.02, 0.01, 0, 0.01, 0.01, 0.07,
0, 2.02, 0, 0, 9.32, 0.02, 9.27, 0, 12.72, 12.72, 12.72, 0.08,
12.72), Type1 = c("type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database", "type=rac_database",
"type=rac_database", "type=rac_database")), .Names = c("Metrics",
"Date", "Value", "Type1"), class = "data.frame", row.names = c(10092L,
10097L, 10103L, 10104L, 10107L, 10108L, 10111L, 10112L, 10114L,
10115L, 10116L, 10117L, 10118L, 10120L, 10121L, 10188L, 10189L,
10190L, 10192L, 10216L))
這是更大數據幀的子集。 如您所見,對於相同的指標和日期,存在多個不同的值。 我只想為相同的數據和指標類型選擇最大值。 因此,對於相同的日期和指標,我應該只有一個值為最大點的值。 任何想法,我怎么能子集這個df?
例如,對於度量標准:db1.Tablespace_Space_Used _(%)和日期:1416257564
在我的df中,我應該有一個條目:
db1.Tablespace_Space_Used_(%) 1416257564 12.72 type=rac_database
與此處給出的答案相同。 查找一列的最大值(按組)並將值插入R中的另一數據幀
假設您的數據幀稱為df
df_1 <- aggregate(Value ~ Metrics + Date + Type1, df, max)
df_1
#edit: removed 'cbind'
產量
Metrics Date Type1 Value
1 db1.Tablespace_Space_Used_(%) 1416257564 type=rac_database 12.72
2 db2.Tablespace_Space_Used_(%) 1416257564 type=rac_database 9.32
這個怎么樣:
> # find the maximum for Value for each combination of Metrics and Date
> df2 <- aggregate(df$Value, by=list(Metrics=df$Metrics, Date=df$Date), max)
> colnames(df2)[3] <- "Value"
> # add the corresponding value for Type1
> df2$Type1 <- df[df$Metrics == df2$Metrics & df$Date == df2$Date & df$Value == df2$Value, "Type1"]
> # result
> df2
Metrics Date Value Type1
1 db1.Tablespace_Space_Used_(%) 1416257564 12.72 type=rac_database
2 db2.Tablespace_Space_Used_(%) 1416257564 9.32 type=rac_database
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.