Я только начал изучать науку о данных, и у меня есть вопрос, который, вероятно, прост для вас. У меня есть набор данных, который выглядит примерно так:
df <- data.frame(id= c(1,1,1,2,2,2,3,3,3), time=c(1,2,3,1,2,3,1,2,3),y = rnorm(9), x1 = LETTERS[seq( from = 1, to = 9 )], x2 = c(0,0,0,0,1,0,1,1,1),c2 = rnorm(9))
df
# id time y x1 x2 c2
# 1 1 1 0.6364831 A 0 -0.066480473
# 2 1 2 0.4476390 B 0 0.161372575
# 3 1 3 1.5113458 C 0 0.343956178
# 4 2 1 0.3532957 D 0 0.279987147
# 5 2 2 0.3401402 E 1 -0.462635393
# 6 2 3 -0.3160222 F 0 0.338454940
# 7 3 1 -1.3797158 G 1 -0.621169576
# 8 3 2 1.4026640 H 1 -0.005690801
# 9 3 3 0.2958363 I 1 -0.176488132
Я пишу функцию с несколькими шагами. Я хотел бы передать функцию с двумя элементами: набор данных и переменную интереса.
Однако эта функция выходит из строя на промежуточном этапе, когда я пытаюсь отфильтровать данные, используя таблицу данных. Важнейший шаг функции выглядит примерно так:
testfun<- function(dataset,var){
intermediatedf<-unique(setDT(dataset)[var==1 & c2>0,.(y)])
return(intermediatedf)
}
Однако запуск df2<-testfun(df,y)
не работает.
Может кто-нибудь помочь мне и объяснить, как я могу создать функцию, в которой я индексирую как набор данных, так и переменную?
Заранее благодарю за помощь