Ich habe einen Charakter Vektor, der folgenden Form zu bewahren:aber die Reihenfolge
vv<-c(1,2,"c", "2%", 3, "b", "4%") # original vector
Von diesem Vektor I nach den folgenden Codezeilen ein paar neue Vektoren erstellt:
# original vector
vv<-c(1,2,"c", "2%", 3, "b", "4%")
# vector without the characters , i.e the c and b
vv1<-vv[-grep("[a-zA-Z]", vv)]
# Steps to create the vector of "integers"
strip_percents <- as.numeric(gsub("%", "", vv1))
no_percents <- as.numeric(vv1[-grep("%", vv1)])
# Vector that collects the strings
strings_vv1 <- vv[grep("[a-zA-Z]", vv)]
# Vector the collects the percentage numbers
perce_vv1 <-vv1[grep("%", vv1)]
perce_vv1 <- as.numeric(gsub("%", "", perce_vv1))/100
Mein Ziel ist es, alle diese Vektoren zu kombinieren und einen Datenrahmen erstellen, aber gegliederte/Ordnung des ursprünglichen Vektors. Mit anderen Worten, ich möchte den Datenrahmen mit NAs an "richtigen Stellen" füllen. So zum Beispiel möchte mein Datenrahmen wie folgt aussehen:
df<-data.frame(original=vv, numerics=c(1,2,NA,0.02,3,NA,0.04), integers=c(1,2,NA,NA,3,NA,NA), characters=c(NA,NA,"c",NA,NA,"b",NA))
original numerics integers characters
1 1 1.00 1 <NA>
2 2 2.00 2 <NA>
3 c NA NA c
4 2% 0.02 NA <NA>
5 3 3.00 3 <NA>
6 b NA NA b
7 4% 0.04 NA <NA>
Kann mir jemand bei dieser Aufgabe helfen?
es funktionierte dank. Aber ich habe etwas vergessen. Wenn der ursprüngliche Vektor auch Daten enthält, was wäre anders, wenn ich einen neuen Vektor erstellen möchte, der die Daten sammelt und alle Vektoren erneut kombiniert, um den Datenrahmen wie zuvor zu erstellen? – msh855
In meiner Datenbank ist das Äquivalent von c und b sind Sätze und scheint nicht zu sammeln, diejenigen in dem Vektor "Charakter" im obigen Beispiel. – msh855
@ msh855 Wenn Leerzeichen dazwischen sind, benötigen Sie möglicherweise^^ [A-Za-z] + $ ' – akrun