r - R:R中的“折叠”行
问题描述
我正在使用 R 编程语言。
假设我有以下数据:
my_data <- data.frame(
"id" = c("1", "1", "1", "1", "2", "2", "2", "2" ),
"name" = c("john", "jason", "jack", "jim", "john", "jason", "jack", "jim" ),
"points" = c("150", "165", "183", "191", "151", "166", "184", "192"),
"gender" = c("male", "male", "male", "male", "male", "male", "male", "male"),
"country" = c("usa", "usa", "usa", "usa", "usa", "usa", "usa", "usa")
)
#view original data format
my_data
id name points gender country
1 1 john 150 male usa
2 1 jason 165 male usa
3 1 jack 183 male usa
4 1 jim 191 male usa
5 2 john 151 male usa
6 2 jason 166 male usa
7 2 jack 184 male usa
8 2 jim 192 male usa
假设对于上述数据:“gender”和“country”将始终具有相同的值。此外,这 4 个名称将始终一起出现 - 每次它们一起出现时,它们的“id”都是相同的数字。唯一可以改变的数字是它们从迭代到迭代的“点”数(即它们的“id”)。
问题:有什么办法可以将上面的数据集自动转换成下面的数据集?
my_data_1 <- data.frame(
"id" = c("1", "2"),
"john_points" = c("150", "151"),
"jason_points" = c("165", "166"),
"jack_points" = c("183", "184"),
"jim_points" = c("191", "192"),
"gender" = c("male", "male"),
"country" = c("usa", "usa")
)
#view desired data format
my_data_1
id john_points jason_points jack_points jim_points gender country
1 1 150 165 183 191 male usa
2 2 151 166 184 192 male usa
有什么方法可以“折叠”这些数据,并且变量名称可以自动重命名为每个人的“name_points”(例如 john_points、jack_points 等)?
目前,我正在尝试在 Excel 中手动执行此操作 - 但有没有办法在 R 中自动“折叠”这些数据?
谢谢
解决方案
推荐阅读
- javascript - 使用查询字符串时将变量传递给函数不起作用
- apache-camel - 为 seda 设置队列大小适用于“to”,但不适用于“toD”
- angular - 角度材料:如何右对齐 matInput 占位符?
- intellij-idea - IntelliJ IDEA:无法输入 { 和 [
- python - 从 load_model() 加载模型时在 Keras 中出错
- python - Django 在两个数据库中创建所有模型表
- java - RabbitTemplate convertAndSend 上的 Spring Amqp 内部 NullPointerException
- angular - 角度反应形式 - 以编程方式将输入元素绑定到反应形式
- react-native - onPanResponderRelease 后,自动动画移动无法正常工作
- apache - Apache 无法启动。设置虚拟主机。MAMP