Что означает "аргументы ошибки" означает различное количество строк: x, y "означает?
Я пытаюсь создать сюжет из элементов csv файла, который выглядит так:
h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0
Я попробовал следующий код, но получаю сообщение об ошибке
Error in data.frame(id = varieties, attr(mat, "row.names"), check.rows = FALSE) :
arguments imply differing number of rows: 8, 20
мои данные образца содержат 8 столбцов и 20 строк (исключая имена заголовков и строк). Я попытался найти в Интернете и попытался выполнить несколько исправлений, но проблема все еще сохраняется. Я бы очень признателен за любую помощь.
mat <- read.csv("trial.csv", header=T, row.names=1)
varieties = names(mat)
df <- data.frame(id=varieties,attr(mat, "row.names"), check.rows= FALSE)
Ответы
Ответ 1
Ваш data.frame mat
является прямоугольным (n_rows!= n_cols).
Следовательно, вы не можете сделать data.frame
из столбцов и розеток, потому что каждый столбец в data.frame должен иметь одинаковую длину.
Возможно, этого достаточно для ваших нужд:
require(reshape2)
mat$id <- rownames(mat)
melt(mat)
Ответ 2
У меня было такое же сообщение об ошибке, поэтому я немного поработал с поиском по Google. Мне удалось исправить его с помощью следующего кода.
df<-data.frame(words = unlist(words))
words - это список символов.
Это на всякий случай, если кому-то еще нужен вывод, который будет представлять собой кадр данных.
Ответ 3
Хотя это не является прямым ответом на ваш вопрос, я просто столкнулся с подобной проблемой и думал, что упомянул об этом:
У меня был экземпляр, где он создавал новую (без сомнения, очень неэффективную) запись для data.frame (результат рекурсивного поиска), и это давало мне ту же ошибку.
У меня было это:
return(
data.frame(
user_id = gift$email,
sourced_from_agent_id = gift$source,
method_used = method,
given_to = gift$account,
recurring_subscription_id = NULL,
notes = notes,
stringsAsFactors = FALSE
)
)
получается... это было = NULL. Когда я переключился на = NA, он работал нормально. На всякий случай, если кто-то другой с подобной проблемой попадет в ЭТОЙ пост, как я.