【发布时间】:2021-05-09 03:07:44
【问题描述】:
我正在尝试制作一个数据框,然后从中创建一个箱线图。数据框应包含 3 个不同大小的向量。假设数据当前位于a$data、b$data 和c$data,长度分别为7、50、200。
这是我的代码的简化版本,其中cbind 步骤错误:
# create initial df
df <- data.frame()
# set column names
colnames(df) <- c("a", "b", "c")
# bind original data to new data frame:
df <- cbind(df, a$data, b$data, c$data)
# draw boxplot
boxplot(df)
【问题讨论】:
-
df <- data.frame创建一个与函数data.frame完全相同的函数。在 R 中,这与x <- 1; y <- x相同。对象x和y现在是identical()。看看identical(df, data.frame)返回什么。你能发布dput(head(a$data))的输出吗? -
也许这只是您的示例代码,但
df这里将是一个函数,而不是数据对象。 (也许我对你的样本数据过于直白了。)此外,你不能cbind不同行数的帧......好吧,你有时可以侥幸逃脱,但如果它没有警告或错误, 你应该担心(并且更加小心)。 -
@RuiBarradas - 当然,看起来像:
c(7.8192479, 7.910274, 7.51289579, 7.189279, 7.5897185, 7.14218948) -
抱歉,data.frame 确实只是一个例子,我现在编辑一下。
-
A
data.frame不能“包含 [...] 不同大小的向量”。但是列表可以,例如l = list(x = rnorm(5, 2), y = rnorm(10, 3), z = rnorm(20, 1))。和boxplot愉快地吃名单:;boxplot(l).