r - rowid_to_column() 和 mutate(rowid = row_number()) 之间的不同行为
问题描述
我不明白为什么这两段代码之间存在不同的行为。当我逐行运行每个块时,我真的看不出两个数据帧之间的差异。只有变量的顺序受到影响。你能解释一下为什么我有这两种不同的输出吗?
iris %>%
gather(var, value, -Species) %>%
group_by(Species, var) %>%
rowid_to_column() %>%
spread(Species, value) %>%
select(-rowid)
# A tibble: 600 x 4
# Groups: var [4].
var setosa versicolor virginica
<chr> <dbl> <dbl> <dbl>
1 Sepal.Length 5.1 NA NA
2 Sepal.Length 4.9 NA NA
3 Sepal.Length 4.7 NA NA
4 Sepal.Length 4.6 NA NA
5 Sepal.Length 5 NA NA
6 Sepal.Length 5.4 NA NA
7 Sepal.Length 4.6 NA NA
8 Sepal.Length 5 NA NA
9 Sepal.Length 4.4 NA NA
10 Sepal.Length 4.9 NA NA
# … with 590 more rows
如果我更改rowid_to_column()
为mutate(rowid = row_number()
,我会得到一个更短的表格,见下文:
iris %>%
gather(var, value, -Species) %>%
group_by(Species, var) %>%
mutate(rowid = row_number()) %>%
spread(Species, value) %>%
select(-rowid)
# A tibble: 200 x 4
# Groups: var [4]
var setosa versicolor virginica
<chr> <dbl> <dbl> <dbl>
1 Petal.Length 1.4 4.7 6
2 Petal.Length 1.4 4.5 5.1
3 Petal.Length 1.3 4.9 5.9
4 Petal.Length 1.5 4 5.6
5 Petal.Length 1.4 4.6 5.8
6 Petal.Length 1.7 4.5 6.6
7 Petal.Length 1.4 4.7 4.5
8 Petal.Length 1.5 3.3 6.3
9 Petal.Length 1.4 4.6 5.8
10 Petal.Length 1.5 3.9 6.1
# … with 190 more rows
谢谢你的帮助!
解决方案
推荐阅读
- microservices - 当有多个服务处理1个模型时,如何确保数据一致?
- python - 检查空字符串和空字符串的Pythonic方法
- google-apps-script - 如何在自动电子邮件中显示百分比值?
- silverstripe - SS4 上的垃圾邮件防护/Recaptcha
- database - 使用聚合管道对新计算的数组字段进行排序和连接
- excel - 根据标题从列中删除单元格范围
- javascript - 如何使按钮自动单击它自己
- c# - 登录时.NET Core 数据库操作失败
- java - java.lang.NoSuchMethodError 在运行 junit 测试用例时使用 org.json.JSONTokener 进行模式验证失败
- python - 如何为 pandas.tseries.holiday.USFederalHolidayCalendar 重新创建日历规则?