Ошибка в data.frame: аргументы подразумевают различное количество строк - PullRequest
1 голос
/ 03 апреля 2019

Я пытался запустить anova для своих данных, но застрял на этой ошибке. Я новичок в R. Пожалуйста, кто-нибудь может мне помочь? Заранее спасибо.

library(data.table)
library(ggplot2)

read_risk_data <- fread("Risk_v2.csv", select = c(1:7))
read_risk_data

read_risk_data[-c(1), ]
risk <- read_risk_data[-c(1), ]
risk

risk.1 <- risk[1:64, ]
risk.1

str(risk.1)
nrow(risk.1)
ncol(risk.1)
class(risk.1)

risk_vp <- c(rep('No.mitigation', 64), rep('Refrigeration', 64), rep('Depuration', 64), rep('Freezing', 64), rep('Thermal.treatment', 64), rep('Thermal.shock', 64), rep('Irradiation', 64))
risk_vp_level <- c(risk.1$No.mitigation, risk.1$Refrigeration, risk.1$Depuration, risk.1$Freezing, risk.1$Thermal.treatment,                      risk.1$Thermal.shock, risk.1$Irradiation)

risk_vp.1 <- t(risk_vp)
risk_vp.2 <- t(risk_vp.1)
risk_vp_level.1 <- t(risk_vp_level)
risk_vp_level.2 <- t(risk_vp_level.1)
df <- data.frame(risk_vp.2, risk_vp_level.2)

Вот структура

Classes ‘data.table’ and 'data.frame':  64 obs. of  7 variables:
$ No mitigation    : num  2.18e-05 4.47e-05 9.43e-05 6.16e-05 2.60e-05 5.29e- 
05 1.10e-04 7.25e-05 2.80e-05 5.67e-05 ...
$ Refrigeration    : num  7.80e-06 1.10e-05 1.64e-05 1.30e-05 8.52e-06 1.20e- 
05 1.79e-05 1.42e-05 8.83e-06 1.24e-05 ...
$ Depuration       : num  7.11e-06 1.58e-05 3.67e-05 2.25e-05 8.57e-06 1.91e- 
05 4.41e-05 2.72e-05 9.28e-06 2.07e-05 ...
$ Freezing         : num  8.11e-06 1.79e-05 4.16e-05 2.55e-05 9.77e-06 2.17e- 
05 5.00e-05 3.08e-05 1.06e-05 2.35e-05 ...
$ Thermal treatment: num  3.44e-09 7.64e-09 2.00e-08 1.11e-08 4.11e-09 9.42e- 
09 2.55e-08 1.40e-08 4.42e-09 1.03e-08 ...
$ Thermal shock    : num  9.09e-10 2.00e-09 5.07e-09 2.89e-09 1.09e-09 2.46e- 
09 6.40e-09 3.60e-09 1.17e-09 2.67e-09 ...
$ Irradiation      : num  3.60e-10 8.25e-10 2.21e-09 1.22e-09 4.32e-10 1.03e- 
09 2.82e-09 1.54e-09 4.67e-10 1.13e-09 ...
- attr(*, ".internal.selfref")=<externalptr> 

И, когда я запускаю этот код:

df <- data.frame(risk_vp.2, risk_vp_level.2)

Это дало мне:

Error in data.frame(risk_vp.2, risk_vp_level.2) : 
arguments imply differing number of rows: 448, 256

1 Ответ

1 голос
/ 03 апреля 2019

Это просто означает, что risk_vp.2 и risk_vp_level.2 имеют разное количество строк.Попробуйте запустить nrow(risk_vp.2) и nrow(risk_vp_level.2) или dim(risk_vp_level.2) после каждой операции, чтобы понять, где находится ошибка.Также обратите внимание, что

c(rep('No.mitigation', 64), rep('Refrigeration', 64), rep('Depuration', 64), rep('Freezing', 64), rep('Thermal.treatment', 64), rep('Thermal.shock', 64), rep('Irradiation', 64))

создаст один вектор из 7 * 64 элементов - если вы хотите создать data.frame из 7 столбцов и 64 строк, вам следует использовать cbindвместо c().Наконец, нам трудно помочь вам, если вы не предоставите нам некоторые данные, которые мы можем использовать на нашей стороне.Пожалуйста, предоставьте в будущем минимальные воспроизводимые примеры, которые не зависят от внешнего файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...