【问题标题】:Select data frame value based on specific row and column in R [closed]根据R中的特定行和列选择数据框值[关闭]
【发布时间】:2021-08-23 22:07:26
【问题描述】:

我正在为这个问题而苦苦挣扎 假设我得到了一个由这些数据组成的数据框。

Country | Year | GDP (Million)|
Australia, 2000, 50
Australia, 2001, 100
USA, 2000, 120
Canada, 2001, 50

有数以千计的列并且它们在不断变化,所以df[2,3] 不是一个选项。 我会怎么做

  1. 选择 2000 年的澳大利亚 GDP
  2. 查找数据集的澳大利亚 GDP 平均值。 感谢您的帮助

【问题讨论】:

标签: r dataframe


【解决方案1】:

上面提到的 Karthik 解决方案非常好。但是,如果您更倾向于使用管道运算符%>%,则可以查看以下内容:

# get all the values in the data frame.
df <- data.frame(Country = c("Australia", "Australia", "USA", "Canada"),
                 Year = c("2000", "2001", "2000", "2001"),
                 GDP = c(50, 100, 120, 150))

# to calculate Australia GDP for year 2000
df %>% 
  filter(df$Country == "Australia" & df$Year == "2000") %>% 
  pull(GDP)


# mean of Australia GDP
df %>% 
  filter(df$Country == "Australia") %>% 
  summarise(Australia_GDP_mean = mean(GDP))

【讨论】:

    【解决方案2】:
    df
        Country Year GDP
    1 Australia 2000  50
    2 Australia 2001 100
    3       USA 2000 120
    4    Canada 2001  50
    df$GDP[df$Country == 'Australia' & df$Year == 2000] # GDP of Australia in 2000
    [1] 50
    mean(df$GDP[df$Country == 'Australia']) # GDP of Australia
    [1] 75
    

    【讨论】:

    • 如何在数据框中找到每个国家的平均 GDP 并将其输入到自己的数据框中?
    • 尝试aggregate(GDP ~ Country, df, mean) 或使用dplyr 包:df %&gt;% group_by(Country) %&gt;% summarise(AVG_GDP = mean(GDP))
    • 谢谢我的朋友!
    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多