Check list equality in R, all.equal doesn't return true -
i trying check whether rows in dataframe equal based on 4 elements of df. subset dataframe 2 rows , 4 elements want compare, , end 2 lists.
when use all.equal or identical on 2 lists, not return being equal. however, if cycle through each element in 2 lists , compare them using "==", each element comparison returns equal.
here code i'm using.
for (row in 1:nrow(df)) { first <- df[row, c("elem1", "elem2", "elem3", "elem4")] second <- df[row+1, c("elem1", "elem2", "elem3", "elem4")] if (istrue(all.equal(first, second))) { df[row, "diff_element"] <- 1 } } when print str(first) , str(second), they're identical. can't figure out why @ least all.equal doesn't return true.
here part of df:
elem1 elem2 elem3 num1 num2 num3 num4 elem4 diff_element 1 103404 brj cj 55.89 17.70005 107.017 77.0330 car 0 2 103404 brj cj 55.89 17.70005 107.017 77.0330 car 0 3 355309 clk jr 12.00 223.44000 23.000 20.2234 train 1 here's when check structure (for first 2 rows, should equal):
> str(first) 'data.frame': 1 obs. of 4 variables: $ elem1: int 103404 $ elem2: factor w/ 2 levels "brj","clk": 1 $ elem3: factor w/ 2 levels "cj","jr": 1 $ elem4: factor w/ 2 levels "car","train": 1 > str(second) 'data.frame': 1 obs. of 4 variables: $ elem1: int 103404 $ elem2: factor w/ 2 levels "brj","clk": 1 $ elem3: factor w/ 2 levels "cj","jr": 1 $ elem4: factor w/ 2 levels "car","train": 1
Comments
Post a Comment