如何解决获取具有相同值的行并在 R 中创建不同的列
我在第一列中有一个重复序列的 df,我想获取相同数字(在第 1 列中)内的值并用它们创建列。 Obs:我的 df 有 25502100 行,序列由 845 个值组成。 请参阅下面我的 df 的一个简单示例:
df <- data.frame(x = c(1,2,3,4,1,4),y = c(0.1,-2,-3,10,6,9))
我想要一个函数来转换这个 df:
df_new
x y z
1 1 0.1 0
2 2 -2.0 10
3 3 -3.0 6
4 4 1.0 9
有人有解决方案吗?
解决方法
带有 pivot_wider
的选项
library(tidyr)
library(data.table)
library(dplyr)
df %>%
mutate(rn = c('y','z')[rowid(x)]) %>%
pivot_wider(names_from = rn,values_from = y)
-输出
# A tibble: 4 x 3
# x y z
# <dbl> <dbl> <dbl>
#1 1 0.1 0
#2 2 -2 10
#3 3 -3 6
#4 4 1 9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。