【发布时间】:2018-12-28 01:10:57
【问题描述】:
R 编程语言如何将一列中的数据行复制并移动到另一列中
以上是我的 Google 搜索关键字,以下是我一直在搜索、研究和尝试执行的链接,但没有成功。我最接近的是将一行数据从一列移动到首选的“房间”列,但是,它删除了所有“房间”数据。
我还想我应该为“Unit_Code”编写一个函数来提取相应的“room_XXX”数据,但是,我不知道是否需要这样做。我只需要将“room_XXX”数据拉入 R 中为“NA”的空“房间”列单元格中。
1.) 该链接看起来像我认为我需要的,但是,尝试按照弗兰克(用户:1191259)对“如何工作”的解释,迷路了。 Filling "implied missing values" in a data frame that has varying observations per time unit
2.) 我尝试了这个链接,但是,我只尝试了一个列,并且无法将所有其他列都放入一个函数中:
ROOMS$room <- ROOMS$room[match(ROOMS$room_8_5s = 560:592, ROOMS$room_8_5s == 560:592)]
Fill in data frame with values from rows above
3.) 我无法访问此链接,以及如何编写函数: r - fill columns in data frame
期待任何帮助,因为我已经做了将近一个星期了,应该很容易,但是,我想不通。
----------
room room_8_5s unit_code
2
1701 1
15
560 8
566 8
562 8
561 8
560 8
2513 13
2512 13
2511 13
---------
期望的表格结果/结果:将“room_xxx”数据复制或移动到“房间”列。最多还有 10 个“room_xxx”列,这是一个缩写版本:
room room_2_6ne room_8_5s room_13_5n unit_code
2501 2501 13
7
6
4
3
1601 1601 2
1701 1
15
560 560 8
566 8
565 8
564 8
这是数据的处理过程:
- 从调查站点提取数据。
- 用户输入单位代码后,即1,2,3,4...
- 出现相应房间号的选择,即单元代码 = 2,房间_2_6ne = 1601-1632。
- 用户选择房间#1601。
- 在 R 中,我从站点中提取所有数据。
- 期望的结果:复制和/或移动房间号,即 room_2_6ne 到“房间”列中。
- 之后,在 R 中,卸载每个单元代码的 .csv 报告,只有“房间”列,没有相应的房间列,即 room_2_6ne,包括所有其他 60 个相关列(为简洁起见,此处未列出),供单位经理手动检查/验证。
- 在手动检查并更正错误后,我在网站上下载更正后的数据
- 保存数据,然后将其重新粘贴到另一个 Excel 3rd 方工作表。
致:E. Brown - 贡献者 以下是我为使其正常工作所做的工作:
48 列重新排列,然后在 col 之后添加了一个名为“rooms”的列。 #4,在“房间”列旁边,现在 = 49 列:
all <- data.frame(all[, c(1, 8:20, 2:7, 21:29, 31, 33, 35:51)])
all <- add_column(all, rooms = '', .after = 4)
然后使用新的 Col. #5 - "rooms" 运行该函数,并将所有数据指向填充 Col #6 - "room"。
for (i in 5:length(all[,5])) {
all$room[i] <- all[i,6:15][!is.na(all[i,6:15])]
(我把列标题排在下面很糟糕,你是怎么做到的?我添加了四个空格,并且数据列正确响应......)
rooms room room_1_7ne room_2_6ne room_3_5ne room_4_4n...
2401 2401
1501 1501
1601 1601
1701 1701
567
568
569
请在此处查看电子表格的图片链接: ROOM
如果我试图将数据指向第 5 列“房间”,它没有填充前 4 行数据(请参阅列 - 房间 567、568、569、571 的“房间”下)。我在顶部粘贴了“room_XXX”数据,以表明它确实属于“房间”列。我在这里错过了什么,它不会将前 4 行数据填充到“房间”列中?:
rooms room room_1_7ne room_2_6ne room_3_5ne room_4_4n...
660 660 660
2501 2501 2501
560 560 560
1201 1201 1201
2301 2301 2301
2401 2401 2401
1501 1501 1501
1601 1601 1601
1701 1701 1701
567
568
569
571
572 572
请在此处查看电子表格的图片链接: ROOMS
【问题讨论】:
-
您好,您能否为您的示例数据显示您的预期结果。
-
房间 room_2_6ne room_8_5s room_13_5n unit_code 2501 2501 13 7 6 4 3 2501 2501 2 1701 1 15 560 560 8 566 8 565 8 564 8
-
啊,这里不知道怎么正确回答……
-
嗨,我刚刚使用期望的结果/结果表编辑和更新了我的原始帖子。
-
我无法理解您如何生成所需输出的逻辑。请逐步清楚地解释您如何达到所需的输出。另外,请使用
dput添加一些示例数据