我有一个数据框,我试图通过数据框循环来识别那些包含特殊字符或全部是大写字母的列。抓取特殊字符和大写字母的列
我已经尝试了一些东西,但没有任何地方我是苹果来捕捉循环内的列名称。
data = data.frame(one=c(1,3,5,1,3,5,1,3,5,1,3,5), two=c(1,3,5,1,3,5,1,3,5,1,3,5),
thr=c("A","B","D","E","F","G","H","I","J","H","I","J"),
fou=c("A","B","D","A","B","D","A","B","D","A","B","D"),
fiv=c(1,3,5,1,3,5,1,3,5,1,3,5),
six=c("A","B","D","E","F","G","H","I","J","H","I","J"),
sev=c("A","B","D","A","B","D","A","B","D","A","B","D"),
eig=c("A","B","D","A","B","D","A","B","D","A","B","D"),
nin=c(1.24,3.52,5.33,1.44,3.11,5.33,1.55,3.66,5.33,1.32,3.54,5.77),
ten=c(1:12),
ele=rep(1,12),
twe=c(1,2,1,2,1,2,1,2,1,2,1,2),
thir=c("THiS","THAT34","T(&*(", "!!!","@$#","$Q%J","who","THIS","this","this","this","this"),
stringsAsFactors = FALSE)
data
colls <- c()
spec=c("$","%","&")
for(col in names(data)) {
if(length(strings[stringr::str_detect(data[,col], spec)]) >= 1){
print("HORRAY")
colls <- c(collls, col)
}
else print ("NOOOOOOOOOO")
}
for(col in names(data)) {
if(any(data[,col]) %in% spec){
print("HORRAY")
colls <- c(collls, col)
}
else print ("NOOOOOOOOOO")
}
任何人都可以阐明解决这个问题的好方法。
编辑:
的最终目标是有列名的名称的载体,它符合该条件。对不起,我可怜的SO问题,但希望这将是我想要做的
是否有任何意义的数据在列而不是仅仅作为字符串(每行一个字符串)? – Gregor
这就是数据的方式,我也必须通过逻辑,数字等列进行循环。我想我可以提取它们并将其保存为矢量,但是在一天结束时,目标是获取包含特殊字符的变量的列名称,等等 – AGUY
如果包含,通常会得到更好的结果在你的问题中你的“结束的一天”的目标。 – Gregor