Ich habe einen Datenrahmen und ich versuche, den Datenrahmen zu durchlaufen, um diejenigen Spalten zu identifizieren, die ein Sonderzeichen enthalten oder die alle Großbuchstaben sind.Grabbing-Spalten mit Sonderzeichen und Großbuchstaben
Ich habe ein paar Dinge ausprobiert, aber nichts, wo ich Apple die Spaltennamen innerhalb der Schleife zu fangen bin.
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")
}
Kann jemand Licht auf eine gute Möglichkeit, dieses Problem anzugehen.
EDIT:
Das Endziel ist ein Vektor mit einem Namen von Spaltennamen zu haben, die die Kriterien erfüllen. Sorry für meine Frage SO schlecht, aber dies wird hoffentlich helfen, mit dem, was ich versuche
Gibt es einen Sinn, die Daten in Spalten anstatt nur als Strings (eine Zeichenfolge pro Zeile) zu haben? – Gregor
Das ist nur, wie die Daten sind, und ich muss auch die logischen, numerischen usw. Spalten durchlaufen. Ich schätze, dass ich sie extrahieren und als Vektor speichern könnte, aber am Ende des Tages ist es das Ziel, den Spaltennamen für die Variable zu erhalten, die ein Sonderzeichen enthält usw. – AGUY
Normalerweise erhalten Sie bessere Ergebnisse, wenn Sie einschließen Dein Ziel am Ende des Tages in deiner Frage. – Gregor