У меня есть data.frame, irv
, с интересующей колонкой.class(irv)
возвращает 'data.frame'.
is.recursive(irv)
возвращает TRUE
, is.atomic(irv)
возвращает FALSE
.В консоли irv$x
возвращает интересующий столбец.max(irv$x)
также возвращает соответствующее максимальное значение.
Внутри вызова графика я пытаюсь установить xlim, используя максимальное значение этого столбца, поэтому у меня есть
plot(y~x,data = subsetirv,xlab = '', ylab = '', ylim = c(0,20),
xlim = c(0, max(irv$x)),
cex = 0.5, pch = 19)
, это всеаргументы, которые у меня есть, в случае, если есть какое-то странное взаимодействие с аргументом
И все же каждый раз, когда он выдает следующую ошибку:
Error in irv$x : $ operator is invalid for atomic vectors
Почему вызов plot () считает, чтоirv атомарен, когда все остальное утверждает, что это фрейм данных?
Обычно я стараюсь предоставить воспроизводимые данные, но я не могу воспроизвести проблему, кроме как с моими фактическими данными, и я не уверен вкак делиться реальными данными разумным способом.
Есть ли какое-то странное взаимодействие, о котором я не думаю?
Кстати, данные, которые наносятся на график, являются подмножеством irv, если это имеет значение.
-edit- Что-то, что я только что попробовал, сохранило фрейм данных как другое имя объекта.Первоначально он назывался irv
, и я сохранил в новый объект под названием testdf
.Это решило проблему.Есть ли что-то в сюжете или в максимальной функциональности?Название явно было проблемой, но я не знаю почему.
-edit2- после предложения вот пастбина с выводом dput(head(irv))
: pastebin и вотвывод str(irv)
:
'data.frame': 16198 obs. of 17 variables:
$ reader : chr "MG" "MG" "MG" "MG" ...
$ read : int 1 1 1 1 1 1 1 1 1 1 ...
$ age : num 2 3 4 5 6 7 8 9 10 11 ...
$ fishid : Factor w/ 2118 levels "2010_TNS_0135",..: 7 7 7 7 7 7 7 7 7 7 ...
$ otorad : num 6.15 9.52 13.47 17.32 22.28 ...
$ year : chr "2010" "2010" "2010" "2010" ...
$ readid : chr "2010_TNS_0153_MG_1" "2010_TNS_0153_MG_1" "2010_TNS_0153_MG_1" "2010_TNS_0153_MG_1" ...
$ incwidth : num 3.94 3.37 3.94 3.85 4.96 ...
$ profflag : chr "good" "good" "good" "good" ...
$ median : num 3.85 3.82 3.78 3.77 3.78 ...
$ upper75prob: num 4.44 4.19 3.94 3.94 4.03 ...
$ lower25prob: num 3.58 3.65 3.67 3.5 3.56 ...
$ IQR : num 0.859 0.543 0.269 0.437 0.465 ...
$ diff_flag : num 0.0954 -0.8162 0.6171 0.1933 2.5376 ...
$ roll_flag : chr "good" "good" "good" "good" ...
$ irv : num 3.936 -0.563 0.571 -0.09 1.104 ...
$ irvf : chr "good" "good" "good" "good" ...