2017-10-20 7 views
0

J'ai une trame de données, dans lequel j'ai créé de nouvelles variables (qui sont des versions «nettoyées» des originaux). Lorsque je sous-ensemble la trame de données, ces nouvelles variables ne semblent pas être dans la trame de données sous-ensemble. Ai-je besoin de créer ces nouvelles variables à nouveau? Ou est-il un moyen de s'assurer qu'ils sont dans la trame de données sous-ensemble.Sous-ensemble. Créer/nettoyer de nouvelles variables dans une trame de données; quand je sous-ensemble, pas dans la nouvelle trame de données

Un peu plus de détails: J'ai joint une trame de données 'x'.

newdf <- subset (x, (income %in% c('<20000'))) 

(Version revenu est nettoyé d'une autre variable, et est une variable de facteur.) Ainsi, la nouvelle trame de données ne doit contenir que ceux qui ont un revenu inférieur à 20000.

Cela semble fonctionner, et ne , en effet me donner une nouvelle trame de données avec le nombre correct d'observations.

Cependant, lorsque je tente de faire

freq (newdf$income) 

Je reçois:

Erreur dans plot.window (XLIM, ylim, log = log, ...): besoin fini ' Valeurs xlim ' En outre: Messages d'avertissement: 1: En min (wl): pas d'arguments non manquants à min; retournant Inf 2: In max (w.r): pas d'arguments non manquants à max; return -Inf 3: En min (x): pas d'arguments non manquants à min; retournant Inf 4: In max (x): pas d'arguments non manquants à max; retour -Inf

Merci!

+0

Pouvez-vous fournir quelques exemples de données? – Wimpel

+0

Veuillez publier un exemple de dataset en utilisant 'dput (head (data, 20))'. Et un exemple de code, comme ça, il est impossible de vous aider. –

Répondre

0

Utilisez la fonction table() pour vérifier la fréquence ou le nombre de income dans la nouvelle trame de données sous-définie.

Pour autant que je comprends que vous voulez sous-ensemble de votre ensemble de données ayant un seul des niveaux de income variables à savoir <20000 dans le newdf et la vérification non. des observations dont le revenu <20000 dans le newdf

La mise en œuvre même dans iris ensemble de données

dim(iris) 
# [1] 150 5 

table(iris$Species) 

# setosa versicolor virginica 
#  50   50   50 


newdf <- subset(iris, Species %in% "virginica") 
dim(newdf) 
# [1] 50 5 

table(newdf$Species) 

# setosa versicolor virginica 
#  0   0   50 

Un autre exemple

df <- data.frame(a = 1:9, b = as.factor(rep(c("<100","<200", "<300"), each = 3))) 
df 
# a b 
# 1 1 <100 
# 2 2 <100 
# 3 3 <100 
# 4 4 <200 
# 5 5 <200 
# 6 6 <200 
# 7 7 <300 
# 8 8 <300 
# 9 9 <300 

table(df$b) 

# <100 <200 <300 
# 3 3 3 

newdf <- subset(df, b %in% "<300") 
newdf 
# a b 
# 7 7 <300 
# 8 8 <300 
# 9 9 <300 

table(newdf$b) 

# <100 <200 <300 
# 0 0 3 
+0

dim (x) #original dataframe > [1] 10364 1086 dim (newdf) trame de données #new, créé correctement et a des dimensions droit > [1] 2301 1086 tableau (newdf revenu $) Mais je reçois ceci: >

Rainmaker

+0

s'il vous plaît vérifier si 'income' existe comme l'un des noms de colonnes dans newdf ou voir si une faute de frappe .. –

+0

Il semble essentiellement comme les variables qui étaient dans le cadre de données d'origine, sont bien dans la nouvelle trame de données, mais les variables que j'ai créé, ne le sont pas. – Rainmaker