我正在处理动态生成的数据框。
structure(list(`4` = c(NA, NA, "Location", NA), `5` = c(NA, NA,
"Size", "W")), row.names = c(NA, 4L), class = "data.frame")
上面看起来像这样:
4 5
1 <NA> <NA>
2 <NA> <NA>
3 Location Size
4 <NA> W
从数据框中的每一列我想获得第一个字符变量。例如,从上表中,我想检索 Location 和 Size 并将它们用作我的列标题。
由于表格是动态生成的,我不确定字符串变量会出现在哪一行。
一个选项是遍历列,获取第一个非 NA 元素 summarise_all
library(dplyr)
df1 %>%
summarise_all(funs(.[!is.na(.)][1]))
或 with sapply
,使用相同的逻辑
sapply(df1, function(x) x[!is.na(x)][1])
或者使用which
逻辑矩阵 ( !is.na(df1)
),对数据进行子集化,通过过滤掉重复的列索引来获取每列的第一个元素
ind <- which(!is.na(df1), arr.ind = TRUE)
df1[ind][!duplicated(ind[,2])]
#[1] "Location" "Size"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句