2017-07-02 2 views
0

J'ai données .csv avec colonne et 5000 lignes comme suit: commeLire le fichier .csv en tant que read.transactions pour appliquer ariori() dans R?

age sex children distance 
    1 0  1  1  
    1 1  1  2 
    2 1  0  1  
    1 0  1  3  
    3 1  0  2 
    1 1  1  1 

Je veux appliquer l'extraction de règles d'association à l'aide apriori(). donc essayé de lire l'ensemble de données en utilisant read.transactions comme suit:

mar = read.transactions("Marketing campaign.csv", format = "basket", 
         sep = ",", cols = c("age", "sex", "children", "distance")) 

Mais je reçois l'erreur suivante:

Error in read.transactions("Marketing campaign.csv", format = "basket", : 'cols' must be a numeric scalar for 'basket'.

S'il vous plaît aider. Merci à l'avance

+1

Essayez d'utiliser '' instad as.factor' de as.character' –

+0

Vous pouvez spécifier la classe pour chaque colonne en utilisant l'argument '' lire dans colClasses' .csv' comme suit: 'dat <- read.csv (" filename.csv ", colClasses = rep (" character ", 4))' – George

+0

Voir aussi: https://stackoverflow.com/a/2805414/4300478 – George

Répondre

1

Dans R, le type de données qui contient des variables de type Categrorial est appelé factor. vecteurs de facteur peuvent facilement être créés avec les méthodes as.factor et factor

myDf <- data.frame(
    age = c(1,1,2,1,3,1), 
    sex = c(1,1,1,0,1,1), 
    children = c(1,1,0,1,0,1), 
    distance = c(0,2,1,3,2,1) 
) 

myDf 
# age sex children distance 
# 1 1 1  1  0 
# 2 1 1  1  2 
# 3 2 1  0  1 
# 4 1 0  1  3 
# 5 3 1  0  2 
# 6 1 1  1  1 

myDf$sex <- factor(myDf$sex, labels = c("F", "M")) 

myDf 
# age sex children distance 
# 1 1 M  1  0 
# 2 1 M  1  2 
# 3 2 M  0  1 
# 4 1 F  1  3 
# 5 3 M  0  2 
# 6 1 M  1  1 
+0

Mais j'ai 5000 lignes de cette combinaison. Et après cela, je dois appliquer apriori() sur cela. Même après la conversion en facteurs, il montre qu'aucune méthode ou par défaut pour contraindre "tbl_df" à "transactions" – Abhi

+0

Je ne comprends pas comment le nombre de lignes fait une différence ici. A propos de 'transactions': C'est une question complètement différente de celle que vous avez posée précédemment. Dans le pascage 'arules', il existe une classe spécifique appelée' transactions'. Si vous voulez de l'aide avec cela, mentionnez ceci dans la question –

+0

Merci Gregor, j'ai édité la question. – Abhi