我有一个数据列,其列名以数字开头,名称以字符串开头,我想将名称以数字开头,后跟点子集。
该代码适用于此示例,但是在我的实际数据框中AA ID
选择了该列。我不知道原因
df <- data.frame(`AA ID`=c(1,2,3,4,5,6,7,8,9,10),
"BB"=c("AMK","KAMl","HAJ","NHS","KUL","GAF","BGA","NHU","VGY","NHU"),
"CC"=c("TAMAN","GHUSI","KELVIN","DEREK","LOKU","MNDHUL","JASMIN","BINNY","BURTAM","DAVID"),
"DD"=c(62,41,37,41,32,74,52,75,59,36),
"EE"=c("CA","NY","GA","DE","MN","LA","GA","VA","TM","BA"),
"FF"=c("ENGLISH","FRENCH","ENGLISH","FRENCH","ENGLISH","ENGLISH","SPANISH","ENGLISH","SPANISH","RUSSIAN"),
"GG"=c(33,44,51,51,37,58,24,67,41,75),
`1A`=c("","D","","NA","","D","","","D",""),
`2B`=c("","A","","","A","A","A","A","",""),
`3C`=c("","","","","","","","","",""),
`4D`=c("","G","G","G","G","G","G","G","",""),
"Concatenate" = c("","DAG","G","NAG","AG","DAG","AG","AG","D",""))
df <- df %>% rename(`1. A`="X1A",`1. B`="X2B",`1. C`="X3C",`1. D`="X4D")
Error_summary <- select(df,matches("^[0-9]*\\."))
我也在尝试在如下所示的数据框中添加计数
df_row =
df %>%
summarize(across(c(matches("^[0-9]*\\."), Concatenate), ~ sum(!is.na(.) & . != "" & . != "NA")))
但这也是选择列AA ID
,我不想选择。
考虑到应该将以数字开头的变量转换为以X开头的变量名称,您可以执行以下操作:
library(tidyverse)
df %>%
select(matches("^X[0-9]"))
这使:
X1..A X2..B X3..C X4..D
1
2 D A G
3 G
4 NA G
5 A G
6 D A G
7 A G
8 A G
9 D
10
使用相同的逻辑,您可以算数:
df %>%
summarize(across(c(matches("^X[0-9]"), Concatenate), ~ sum(!is.na(.) & . != "" & . != "NA")))
这使
X1..A X2..B X3..C X4..D Concatenate
1 3 5 0 7 8
尽管我不确定是否要在“连接”列中排除“ NAG”值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句