То, что я пытаюсь сделать, это отредактировать список транзакций, хранящийся в виде CSV-файла, во что-то, что может быть использовано пакетом «arules» в R. Но я также хочу сохранить его как фрейм данных, чтобы я мог его экспортироватьв другой файл CSV.Итак, я начал с простого набора данных:
Fruit Milk Eggs
yes yes no
no no yes
no yes yes
yes yes yes
Это должно выглядеть так:
Fruit Milk
Eggs
Milk Eggs
Fruit Milk Eggs
Итак, я прочитал в CSV и получил имена столбцов:
df1 <- read.csv('basket_test.csv')
l <- c()
#create list with item names
for(i in 1:3){
print(i)
l <- append(l,names(df1)[i])
i=i+1
}
Вот где я сталкиваюсь с проблемой, R видит категориальные данные и жалуется, когда я пытаюсь их изменить:
#replace "yes" with item name
for(x in 1:3){
for(y in 1:4){
if(df1[y,x]=="yes"){
df1[y,x] <- l[x]
}
}
}
Это выдало мне эту ошибку:
недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует недопустимый уровень фактора, NA генерирует
И фрейм данных теперь выглядит следующим образом:
Fruit Milk Eggs
1 <NA> <NA> no
2 no no <NA>
3 no <NA> <NA>
4 <NA> <NA> <NA>
Я попытался as.character
в ячейках фрейма данных, перебирая каждую из них, затем повторяя попытку подпрограммы, но это не сработало,Итак, что мне делать с моим фреймом данных, чтобы изменить его значения?
Спасибо
edit Я нашел это:
df_fact <- data.frame(lapply(df1,as.factor))
df_trans <- as(df_fact, 'transactions')
из поста здесь: R-конвертировать набор данных формата транзакции в формат корзины для анализа корзины рынка
Но я пытаюсь сделать это сам, и этот метод ничего не производитЯ могу хранить как CSV.