R 如何通过If_else语句根据另一列中的值在一列中输入标称值

R 如何通过If_else语句根据另一列中的值在一列中输入标称值,r,dataframe,for-loop,if-statement,R,Dataframe,For Loop,If Statement,我试图根据一个专门用于年龄的列输入名义变量。基本上,如果某人的年龄在1到5岁之间,如年龄列所示,那么我希望年龄组列的值为1,因为他们属于年龄组1。我试着在多个专栏中这样做,因为年龄每年增加一个。我曾尝试通过使用if-else函数的for循环来实现这一点,但它不起作用 `my_vector_1<-c(1,3,5,7,9,11,2,4,6,8,10,12,3,5,7,9,11,13) my_matrix_1<-matrix(data=my_vector_1, nrow=6, ncol=

我试图根据一个专门用于年龄的列输入名义变量。基本上,如果某人的年龄在1到5岁之间,如年龄列所示,那么我希望年龄组列的值为1,因为他们属于年龄组1。我试着在多个专栏中这样做,因为年龄每年增加一个。我曾尝试通过使用if-else函数的for循环来实现这一点,但它不起作用

`my_vector_1<-c(1,3,5,7,9,11,2,4,6,8,10,12,3,5,7,9,11,13)

my_matrix_1<-matrix(data=my_vector_1, nrow=6, ncol=3)

colnames(my_matrix_1)<-c(paste0("Age", 2000:2002))

rownames(my_matrix_1)<-c(paste0("Participant", 1:6))

my_data_1<-data.frame(my_matrix_1)

my_data_1<-cbind("AgeGroup2000"=NA, "AgeGroup2001"=NA, "AgeGroup2002"=NA, my_data_1)

my_data_1

#I'm basically trying to make the below code into a for loop

my_data_1$AgeGroup2000[my_data_1$Age2000 %in% 1:5]<-1
my_data_1$AgeGroup2000[my_data_1$Age2000 %in% 6:10]<-2
my_data_1$AgeGroup2000[my_data_1$Age2000 %in% 11:15]<-3

my_data_1$AgeGroup2001[my_data_1$Age2001 %in% 1:5]<-1
my_data_1$AgeGroup2001[my_data_1$Age2001 %in% 6:10]<-2
my_data_1$AgeGroup2001[my_data_1$Age2001 %in% 11:15]<-3

my_data_1$AgeGroup2002[my_data_1$Age2002 %in% 1:5]<-1
my_data_1$AgeGroup2002[my_data_1$Age2002 %in% 6:10]<-2
my_data_1$AgeGroup2002[my_data_1$Age2002 %in% 11:15]<-3`

`my_vector_1也许在这里使用
findInterval
cut
更好。我们可以使用
lappy
将其应用于多个列

my_data_1[paste0("AgeGroup_", 2000:2002)] <- lapply(my_data_1, findInterval, c(1, 6, 11))


#             Age2000 Age2001 Age2002 AgeGroup_2000 AgeGroup_2001 AgeGroup_2002
#Participant1       1       2       3             1             1             1
#Participant2       3       4       5             1             1             1
#Participant3       5       6       7             1             2             2
#Participant4       7       8       9             2             2             2
#Participant5       9      10      11             2             3             3
#Participant6      11      12      13             3             3             3
数据

my_vector_1<-c(1,3,5,7,9,11,2,4,6,8,10,12,3,5,7,9,11,13)
my_matrix_1<-matrix(data=my_vector_1, nrow=6, ncol=3)
colnames(my_matrix_1)<-c(paste0("Age", 2000:2002))
rownames(my_matrix_1)<-c(paste0("Participant", 1:6))
my_data_1<-data.frame(my_matrix_1)
my_vector_1
my_vector_1<-c(1,3,5,7,9,11,2,4,6,8,10,12,3,5,7,9,11,13)
my_matrix_1<-matrix(data=my_vector_1, nrow=6, ncol=3)
colnames(my_matrix_1)<-c(paste0("Age", 2000:2002))
rownames(my_matrix_1)<-c(paste0("Participant", 1:6))
my_data_1<-data.frame(my_matrix_1)