I have a dataframe like:
> head(bedfile)
chr start end fam class_subclass Jval_at_closing step strand code family
1 1.1000_SRR13070663.317319 582 665 LINE__rnd-6_family-16 LINE/I-Jockey 2 3 R LINE rnd-6_family-16
2 1.1000_SRR13070663.317319 20701 20804 LINE__rnd-5_family-6279 LINE/L2 3 2 F LINE rnd-5_family-6279
3 1.1001_SRR13070663.317930 1023 1117 DNA__rnd-5_family-1403 DNA/TcMar-Mariner 2 3 R DNA rnd-5_family-1403
4 1.1001_SRR13070663.317930 1139 1196 Unknown__rnd-5_family-4199 Unknown 3 3 F Unknown rnd-5_family-4199
5 1.1001_SRR13070663.317930 1199 1282 Unknown__rnd-5_family-6039 Unknown 4 3 R Unknown rnd-5_family-6039
6 1.1001_SRR13070663.317930 1317 1384 Unknown__rnd-6_family-2340 Unknown 5 3 F Unknown rnd-6_family-2340
and another one:
> head(CODE)
V1 V2 V3 V4 V5
1 rDNA F S 500 3
2 rDNA R s 500 3
3 CL0015 F O 300 3
4 CL0015 R o 300 3
5 CL0076 F P 300 3
6 CL0076 R p 300 3
I would like to create a new column in the first one, and assign different values to selected rows based on criteria, using a nested for loop that creates the criteria:
for (i in unique(CODE$V1)) {
for (j in unique(CODE$V2)) {
bedfile[bedfile$code == i & bedfile$strand == j,]$codification <- CODE[CODE$V1 == i & CODE$V2 == j,]$V3}}
The idea is that a particular value from one dataframe to be assigned to all rows that match these criteria in bedfile, but the actual code does not work. The problem is in the assignation line, since the following statement does not work either:
bedfile[bedfile$code == "LTR" & bedfile$strand == "+",]$codification <- "some_string"
Can anyone help me? I think that it may be also a way more efficient way for do that than with a nested for loop, but I don't know how
Thank you