【发布时间】:2020-02-02 01:21:11
【问题描述】:
所以我正在尝试重命名在我的 R 代码中显示摘要统计信息的小标题的列。但是对于我添加到 tibble 的列,我似乎无法完全更改它们的名称
这是从数据框“UScereal”中获取中值最小值和最大值的代码:
UScereal %>% #get median
group_by(mfr) %>%
summarise(fibre = median(fibre)) -> fib_med
UScereal %>% #get maximum
group_by(mfr) %>%
summarise(fibre = max(fibre)) -> maximum
maximum %>% select(max = fibre) -> maximum #remove first column and rename 2nd column as 'max'
UScereal %>%
group_by(mfr) %>% #get minimum
summarise(fibre = min(fibre)) -> minimum
minimum %>% select(min = fibre) -> minimum #remove first column and rename 2nd column as 'min'
fib_med <- add_column(fib_med, maximum, minimum) #append the max and min to the first tible
这些是我尝试重命名列的两种不同的语句:
fib_med <- fib_med %>% rename(fib_med, manufacturer = mfr, median_fiber = fibre, max_fiber = maximum$max, fiber_minimum = minimum$min)
#throws Error: All arguments must be named
fib_med <- fib_med %>% rename(manufacturer = mfr, median = fibre) #works fine
fib_med
我注意到当我调用 colnames(fib_med) 时,我得到了想要的结果
> colnames(fib_med)
[1] "manufacturer" "median" "maximum" "minimum"
但是当我打印/查看表格时,我得到的是“maximum$max”而不是“maximum”,最小值也一样
> fib_med
# A tibble: 6 x 4
manufacturer median maximum$max minimum$min
<fct> <dbl> <dbl> <dbl>
1 G 1.8 5 0
2 K 1.33 28 0
3 N 5.97 30.3 4.48
4 P 7.46 12 0
5 Q 1 4 0
6 R 1.33 5.97 0
是否因为我从另一个小标题添加了最大和最小列而显得古怪?有没有办法修复它,所以列名是:“制造商”、“中位数”、“最大值”、“最小值”?
编辑:已解决。 akrun 和 iod 的解决方案都有效。谢谢!
【问题讨论】: