r - 根据r中其他行中的相同名称选择行矩阵
问题描述
我有一个矩阵,我想首先选择基于行的列的一部分,如下例所示:
原始矩阵:
x1 x2 x3 x4 x5
a a 15 16 0
b j 12 10 8
c h 14 0 0
d b 28 41 0
d 13 60 9
c 12 78 98
我想得到的矩阵:
x1 x2 x3 x4 x5
a a 15 16 0
b b 28 41 0
c c 12 78 98
d d 13 60 9
解决方案
考虑到您有一个数据框并且空单元格是NA
,您可以执行以下操作:
library(tidyverse)
df <- data.frame(x1 = c("a",'b','c','d',NA,NA),
x2 = c("a",'j','h','b','d','c'),
x3 = c(15,12,14,28,13,12),
x4 = c(16,10,0,41,60,78),
x5 = c(0,8,0,0,9,98))
df <- full_join(df %>%
filter(!is.na(x1)) %>%
select(x1),
df %>%
filter(x2 %in% x1) %>%
select(-x1),
by = c("x1" = "x2")) %>%
mutate(x2 = x1) %>%
relocate(x1, x2)
输出:
x1 x2 x3 x4 x5
1 a a 15 16 0
2 b b 28 41 0
3 c c 12 78 98
4 d d 13 60 9
推荐阅读
- javascript - 在 php 中使用 javascript var 获取 wordpress 附件
- proxy - 具有公司代理身份验证的 Chrome 无头浏览器无法正常工作
- android - 片段中的轮播错误
- vidyo - Vidyo - 如何设置 logFileName 写入本地文件
- java - 在Java Stream中的多个数组内循环
- mysql - MySQL连接行值作为列名
- vue.js - 在类星体框架数据表中获取选定的行 ID
- mysql - MySQL + NodeJS - 当对表执行 CUD 操作时,在表中维护 AuditLog 历史记录
- python - 配置参数未从其他位置读取
- json - 获取 JSON 并将其添加到数组中