作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,我的 df 是:
>dfABy
A B C
56 NA NA
NA 45 NA
NA 77 NA
67 NA 12
NA 65 3
我想实现以下数据框
>dfABy
A B C
A NA NA
NA B NA
NA B NA
A NA C
NA B C
最佳答案
这是 base R
中的一个选项.将数据转换为逻辑矩阵,非 NA 为 TRUE,NA 为 FALSE。根据 col
复制列名um 指数 ('nm1')。根据索引 'i1' 为数据中的元素分配相应的列名
i1 <- !is.na(dfABy)
nm1 <- names(dfABy)[col(dfABy)]
dfABy[i1] <- nm1[i1]
-输出
dfABy
# A B C
#1 A <NA> <NA>
#2 <NA> B <NA>
#3 <NA> B <NA>
#4 A <NA> C
#5 <NA> B C
dfABy[] <- names(dfABy)[col(dfABy)][(NA^is.na(dfABy)) * col(dfABy)]
tidyverse
library(dplyr)
dfABy %>%
mutate(across(everything(), ~ replace(., !is.na(.), cur_column())))
# A B C
#1 A <NA> <NA>
#2 <NA> B <NA>
#3 <NA> B <NA>
#4 A <NA> C
#5 <NA> B C
数据
dfABy <- structure(list(A = c(56L, NA, NA, 67L, NA), B = c(NA, 45L, 77L,
NA, 65L), C = c(NA, NA, NA, 12L, 3L)), class = "data.frame", row.names = c(NA,
-5L))
关于r - 将变量的名称分配给具有多个变量的数据框中的非 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67511707/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!