我覺得我的問題很容易解決,但是,我似乎無法弄清楚。
我想組合屬于同一組的多行,以便每組有一行。此行包含某些變數的行的總和以及其他變數的平均值。在這個例子中,我只包含treatment了我需要每個 group 行的總和的變數episode。
Df <- data.frame(country = c("A", "A", "A", "A", "A", "B","B", "B", "B"),
year = c("1950", "1951", "1952", "1953", "1954", "1950", "1951", "1952", "1953"),
time1 = c("1950", "1951", "1951", "1953", "1954", "1950", "1951", "1952", "1952"),
time2 = c("1951", "1953", "1953", "1954", "1955", "1951", "1952", "1954", "1954"),
episode = c("1", "2", "2", "3", "4", "1", "2", "3", "3"),
status = c(0, 1, 1, 0, 1, 1, 0, 1, 1),
treatment = c(10, "NA", 20, 5, "NA", "NA", 30, 100, 10))
Df2 <- data.frame(country = c("A", "A", "A", "A", "B", "B", "B"),
time1 = c("1950", "1951", "1953", "1954", "1950", "1951", "1952"),
time2 = c("1951", "1953", "1954", "1955", "1951", "1952", "1954"),
episode = c("1", "2", "3", "4", "1", "2", "3"),
status = c(0, 1, 0, 1, 1, 0, 1),
treatment = c(10, 20, 5, 0, 0, 30, 110))
關于如何解決這個問題的任何想法?
uj5u.com熱心網友回復:
像這樣的東西:
library(dplyr)
Df %>%
type.convert(as.is=TRUE) %>%
group_by(episode) %>%
summarise(sumTreatment=sum(treatment, na.rm = TRUE))
episode sumTreatment
<int> <int>
1 1 10
2 2 50
3 3 115
4 4 0
uj5u.com熱心網友回復:
這個怎么樣?
library(tidyverse)
Df2 %>% filter(!is.na(treatment))%>%group_by(episode) %>% summarise(sumTreatment = sum(treatment))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351288.html
