I have a table where I need to choose all the values in the Data column, match with the column names and take the value from that row. Ex. Data column: choose A1, find colu
What about this?
df[cbind(1:4, match(df$Data, names(df)))]
[1] "1" "6" "11" NA
If you create your data.frame with the row.names as your Data column, then it can be as simple as:
mydf <- read.table(text = "A1 A2 A3 Data
1 5 9 A1
2 6 10 A2
3 7 11 A3
4 8 12 A4", header = TRUE, row.names = "Data")
sapply(row.names(mydf), function(x) mydf[[x, x]])
## $A1
## [1] 1
##
## $A2
## [1] 6
##
## $A3
## [1] 11
##
## $A4
## NULL
##
mydf[x,x]
simply returns the element of my df, in the row with the name x and the column with name x. You may need to tweak this output to match your goal.