Я пытаюсь использовать функцию подмножества в функции, которую я создал. Однако по какой-то причине он продолжает выдавать ошибку «Не найден объект» (даже если тот же объект находится вне функции).
пример кода:
#import dataframe:
df <- read.csv("/home/df.csv")
#create function with subset in it:
function_w_subset = function(object_type) {
df1 = subset(df, object_type ==0, select = labels)}
#apply function:
df1 = function_w_subset(barrels)
Что выдает ошибку: Ошибка в eval (подставить (expr), data, enclos = parent.frame ()): объект 'barrels' не найден
Тот же объект вне функции, он отлично работает ...
df2 = subset(df, barrels ==0, select = labels) #this works!
Я попытался воспроизвести ошибку на воспроизводимом примере. Но по какой-то причине в примере это работает нормально!?
desks <- c(0, 1, 2, 3)
barrels <- c(3, 2, 1, 0)
labels <- c("A", "A", "B", "B")
df <- data.frame(labels, desks, barrels)
df1 = subset(df, barrels ==0, select = labels)
subset_function = function(object_type) {
df = subset(df, object_type ==0, select = labels)
df
}
df2 = subset_function(barrels)
Есть идеи, почему возникает эта ошибка, или альтернативная стратегия для подмножества внутри функции? Я пробовал функцию с (). например,
with(df, labels[barrels==0])
Который снова работает вне функции, но не внутри ...