【发布时间】:2020-10-01 23:57:48
【问题描述】:
运行此代码时
projectile <- data.table()
projectile$angle<- c(15, 30, 45, 60, 75)
projectile$distance <- c(5.1, 8, 10, 8.5, 4.8)
ggplot() + geom_point( aes(projectile$angle, projectile$distance) ) # Works
ggplot(projectile) + geom_point( aes(angle,distance) ) # Does not work
我收到此错误:
Error in `$<-.data.frame`(x, name, value) :
replacement has 1 row, data has 0
谁能解释一下这个错误是什么意思,为什么会出现这个错误以及如何修复它?
更新:
如果我使用data.frame,在前面的步骤也会出现同样的错误:
projectile <- data.frame()
projectile$angle<- c(15, 30, 45, 60, 75)
错误:
Error in `$<-.data.frame`(`*tmp*`, angle, value = c(15, 30, 45, 60, 75 :
replacement has 5 rows, data has 0
我不立即创建data.frame(angle=c(..), distance=c(..) 的原因显然是这些值在用户稍后输入之前是未知的。
【问题讨论】:
-
为什么不能将数据集创建为
data.table(angle = c(15, 30, 45, 60, 75) , distance = c(5.1, 8, 10, 8.5, 4.8)) -
我在帖子中说明了原因。请检查
-
你不想在开头创建空的
data.table。如果不知道这些值,你可以不先angle <- c(15, 30, 45, 60, 75);distance <- c(5.1, 8, 10, 8.5, 4.8);然后projectile <- data.table(angle, distance)吗? -
不,我不能 - 在我们的项目中,对表一无所知。然后要求学生添加一列测量值,她还没有测量它们是什么。
标签: r ggplot2 data.table