Подтвердить что ты не робот

Что означает "аргументы ошибки" означает различное количество строк: 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)
4b9b3361

Ответ 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, он работал нормально. На всякий случай, если кто-то другой с подобной проблемой попадет в ЭТОЙ пост, как я.