Заранее благодарим за предоставленную любую помощь. У меня есть относительно большие наборы данных, и я хочу проверить, существует ли каждая строка в серии подмножеств, которые были созданы из большего набора данных. Я могу выполнить это за три шага, но я хотел бы написать фрагмент кода, который делает это за один шаг.создайте новый столбец и введите 1 или 0 на основании предоставленных условий.
Из-за размера моих файлов я хотел бы создать суб-файл t2.a use - добавить 1 или 0 в мой файл t1, удалить его; затем повторить процесс t2.b, t2.c ...
Снова благодаря
Мои фактические наборы данных напоминают ниже dataframes.
t1<- data.frame (A1 = c("red", "blue", "green", "yellow", "brown"),
A2 = c("orange", "purple", "yellow", "black", NA),
A3 = c(1,2,4,5,7))
t2<- data.frame(B2 = c("black", "pink", "lime", "green", "grey", "mist", "blond", "grass", "violet", "red"),
B3 = c("a", "b", "a", "c", "d", "d", "a" , "c", "a", "b"))
> t1
A1 A2 A3
1 red orange 1
2 blue purple 2
3 green yellow 4
4 yellow black 5
5 brown <NA> 7
> t2
B2 B3
1 black a
2 pink b
3 lime a
4 green c
5 grey d
6 mist d
7 blond a
8 grass c
9 violet a
10 red b
# Мой существующий код три шага
# step 1. creates a subset of files
for(i in unique(t2$B3)) {
colName <- paste("t2", i, sep = ".")
assign(colName, t2[t2$B3==i,])
}
# step2. find if string exist in a given subfile
t1$t2.a<- ifelse(t1$A1 %in% t2.a$B2|t1$A2 %in% t2.a$B2,1,0)
#
t1$t2.b<- ifelse(t1$A1 %in% t2.b$B2|t1$A2 %in% t2.b$B2,1,0)
#
t1$t2.c<- ifelse(t1$A1 %in% t2.c$B2|t1$A2 %in% t2.c$B2,1,0)
#
t1$t2.d<- ifelse(t1$A1 %in% t2.d$B2|t1$A2 %in% t2.d$B2,1,0)
# 3.remove each newly created data set
rm(t2.a)
rm(t2.b)
rm(t2.c)
rm(t2.d)
#The result should look like the dataframe below
A1 A2 A3 t2.a t2.b t2.c t2.d
1 red orange 1 0 1 0 0
2 blue purple 2 0 0 0 0
3 green yellow 4 0 0 1 0
4 yellow black 5 1 0 0 0
5 brown <NA> 7 0 0 0 0
Просьба показать ожидаемый результат – akrun
Добро пожаловать в SO. Вы предпринимали какие-либо усилия, чтобы фактически запустить это? –