data.frame中的错误:参数暗示行数不同

时间:2019-04-03 15:00:11

标签: r ggplot2 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 个答案:

答案 0 :(得分:1)

这仅表示risk_vp.2risk_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个元素组成的一个向量-如果您要创建7列64行的data.frame,则应使用cbind而不是{{ 1}}。 最后,如果您不提供一些我们可以使用的数据,我们很难为您提供帮助。将来请提供最少的可复制示例-不依赖于任何外部文件。