r - 用相等的索引替换数字元素
问题描述
我有一个大数据框dim(13265x40)
。数据框是通过在列表中组合几个单独的数据框创建的
big_dataframe = bind_rows(dataframe_list, .id = "Index")
:
.id = "Index"
给了我一个额外的列"Index"
,用数字输入(1、2、3、4 等)调用,所以我仍然可以识别big_dataframe
.
例子:
big_dataframe:
Index A B C D
1 3 6 7 1
1 6 6 2 0
1 7 5 4 2
2 4 0 7 4
2 3 2 9 1
2 9 4 4 5
3 7 1 5 2
3 3 9 3 4
3 1 1 2 10
4 10 6 7 1
等等。然后我有一个 indexlist:indexlist = c("John", "Peter", "Michael", "Brian", etc.)
包含"character"
元素。
目标是用相等索引big_dataframe$Index
的元素替换数字输入。indexlist
例子:
big_dataframe:
Index A B C D
John 3 6 7 1
John 6 6 2 0
John 7 5 4 2
Peter 4 0 7 4
Peter 3 2 9 1
Peter 9 4 4 5
Peter 7 1 5 2
Peter 3 9 3 4
Peter 1 1 2 10
Brian 10 6 7 1
我对此有点迷茫,不知道如何解决这个问题。
先感谢您
解决方案
如果'index'是数字并且从1开始,它可以用作以相同顺序将值替换为'indexlist'值的索引
big_dataframe$Index <- indexlist[big_dataframe$Index]
数据
big_dataframe <- structure(list(Index = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L,
4L), A = c(3L, 6L, 7L, 4L, 3L, 9L, 7L, 3L, 1L, 10L), B = c(6L,
6L, 5L, 0L, 2L, 4L, 1L, 9L, 1L, 6L), C = c(7L, 2L, 4L, 7L, 9L,
4L, 5L, 3L, 2L, 7L), D = c(1L, 0L, 2L, 4L, 1L, 5L, 2L, 4L, 10L,
1L)), class = "data.frame", row.names = c(NA, -10L))
indexlist <- c("John", "Peter", "Michael", "Brian")
推荐阅读
- c - Linux 内核如何设置 PCI BAR 以保证没有地址冲突?
- unity3d - Unity - 如何通过相机移动放大和缩小?
- asp.net - 计数器变量在 Asp.net 网络表单中不起作用?
- python - 修复数据框中超出 CSV 字段长度的额外字段
- node.js - 如何从 bot 内部向 Microsoft bot 发送消息,以便消息通过对话流并获得相应的响应?
- sql - SQL Server 递归笛卡尔
- r - 使用 IF、THEN 和随机值创建创建新变量
- django - 如何在 django 中使用像 AJAX 调用这样的视图?
- javascript - 强制使用 VideoJS 在 HLS 中使用质量级别
- c++ - 支持 const 和非 const 实例的类的 C++ const 正确性/缺少 const 构造函数