我有一個資料框架,其中包括一列 "名稱",其中有多個給定名稱的實體,而另一列 "時間 "有各種時間。 我試圖將這些原始資料轉換為另一個資料框架,該資料框架只列出名字的唯一值,并在不同的列中給出時間的最小值和最大值,以及原始資料框架中每個名字的實體的計數。 我希望最終的資料框架能按最小時間排序,從小到大。
例如:

到目前為止,我已經得到了唯一的名字串列和每個名字的計數,但我不知道如何找到每個唯一名字的最小和最大時間值。 如果有任何建議,我將不勝感激。
uj5u.com熱心網友回復:
使用tidyverse:
library(tidyverse)
df<-
tribble()
~name, ~time,
'a', 19.642,
'a', 19.644,
'b', 20.178,
'c', 22.345,
'b', 20.183,
'a', 19.646,
'b', 20.190,
'c', 22.332)
df %>%
group_by(name)%>%
summarise(count =n(),min. 時間 = min(time), max。 時間 = max(time)) %> %
安排(min.time)
#> # A tibble: 3 × 4
#> name count min.time max.time
#> <chr> <int> <dbl> <dbl>
#> 1 a 3 19.6 19.6
#> 2 b 3 20.2 20.2
#> 3 c 2 22.3 22.3。
創建于2021-09-20,由reprex包(v2.0.0)
uj5u.com熱心網友回復:
使用dplyr包
dataset %>% group_by(name) %>% summarize(n= n(), min = min(time), max = max(time))
uj5u.com熱心網友回復:
編輯
基于你下面的評論,這是一個潛在的解決方案:library(tidyverse)
df <- data. frame(name = c("a"/span>。 "a", "b"。 "c", "b", "a"。 "b", "c"), ,
時間 = c(19.642,/span> 19. 644, 20.178, 22.345,
20.183, 19.646, 20. 190, 22.332))
df2 <- df %>%
group_by(name)%>%
summarise(n = n(),
min = min(time)。
max = max(時間))
print.data.frame(df2)
#> name n min max
#> 1 a 3 19.642 19.646
#> 2 b 3 20.178 20.190。
#> 3 C 2 22.332 22.345。
df3 <- df2 %>%
arrange(desc(min) %> %
mutate(`max - min` = max - min)
print.data.frame(df3)
#> name n min max - min
#> 1 c 2 22.332 22.345 0.013
#> 2 b 3 20.178 20.190 0.012
#> 3 a 3 19.642 19.646 0.004。
創建于2021-09-21,由reprex包(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322173.html
標籤:
上一篇:對資料幀串列的聚合函式R
下一篇:在有多個組的分組條形圖中的標簽
