我正在尝试在%>%
软件包中使用管道dplyr
来变得更好。我知道使用管道(%>%
)的全部要点是它将管道中的第一个参数替换为通过管道连接的参数。也就是说,在此示例中:
area = rep(c(3:7), 5) + rnorm(5)
管道
area %>%
mean
正常函数相等
`mean(area)`.
我的问题是何时到达数据框。我想在数据帧列表中拆分数据帧,然后计算每area
列的均值。但是,我不知道如何调用列而不是数据框?
我知道我可以通过aggregate(area~ year, df, mean)
来按年获得收入,但是我想练习管道。
谢谢!
# Dummy data
set.seed(13)
df<-data.frame(year = rep(c(1:5), each = 5),
area = rep(c(3:7), each = 5) + rnorm(1))
# Calculate means.
# Neither `mean(df$area)`, `mean("area")` or `mean[area]` does not work. How to call the column correctly?
df %>%
split(df$year) %>%
mean
答案 0 :(得分:5)
这吗?
df %>%
group_by(year) %>%
summarise(Mean=mean(area))
答案 1 :(得分:3)
我们需要从list
中data.frame
个split
中的list
中提取列。一种选择是通过map
和summarise
循环访问df %>%
split(.$year) %>%
map_df(~ .x %>%
summarise(area = mean(area)))
和“区域”。
fn main() {
let mut v: Vec<String> = Vec::new();
let mut newstr = String::from("nslookup");
for arg in std::env::args() {
v.push(arg);
newstr.push_str(&format!(" {}", arg));
}
println!("{:?}", v);
println!("{}", newstr);
}