r - 格式化起点和终点数据
问题描述
我想更改我的数据,如下所示。希望你能帮我!
我有这个数据:
Person, Trip,Destination
1, 1,Japan
1,2,US,
2,1,US
2,2, Japan
2,3, China
我想得到这张桌子:
Person, Trip,Origin, Destination
1,1,US, Japan
1,2,Japan, US,
2,1,China, US
2,2, US, Japan
2,3, Japan, China
提前致谢
解决方案
我们在最后的注释中使用了可重复显示的数据。这个问题有样本输出,但没有解释它是如何计算的,所以我们只是假设它是由组Destination
内的旋转定义的Person
。首先定义一个rotation
函数,然后使用ave
它来应用到每个Person
组。最后将列重新排序为问题中显示的顺序。不使用任何包。
rotate <- function(x) c(tail(x, 1), head(x, -1))
transform(DF, Origin = ave(Destination, Person, FUN = rotate))[c(1:2, 4:3)]
给予:
Person Trip Origin Destination
1 1 1 US Japan
2 1 2 Japan US
3 2 1 China US
4 2 2 US Japan
5 2 3 Japan China
笔记
删除第二行数据的尾随逗号,我们假设以下输入:
Lines <- "Person, Trip,Destination
1, 1,Japan
1,2,US
2,1,US
2,2, Japan
2,3, China"
DF <- read.csv(text = Lines, strip.white = TRUE, as.is = TRUE)
推荐阅读
- html - 弹性盒项目中的文本导致弹性盒项目展开
- mysql - 如何在 MYSQL 中编写查询以避免 CSV 中的 qoutes
- hibernate - Spring 应用程序在生成用于测试的 schmea 时报告“字段 'id' 没有默认值”
- javascript - html 在 fullcalender 版本 5 中被视为文本
- tensorflow - 当我尝试使用我的 GPU 时调用 model.fit() 时,Python 3.8.8 Jupyter 笔记本内核死机
- nginx - Next.js 直接从 url 更改不起作用
- r - 在对逻辑套索回归进行重复交叉验证后,对 predict() 函数使用 type = "raw" 选项会返回空向量
- google-cloud-platform - 在谷歌云中寻找 REST API (s) 以提取部署在 kubernetes 中的服务器的运行状况、cpu 负载等信息
- javascript - 状态未在不同组件中更新
- java - 如何在 Android Java 中关闭 Imageview 的抗锯齿功能