r - Finding value that corresponds to same location in another matrix -
i trying factor scores each person. factors stored in dataframe factors
need average of values in dataframe called data
of values correspond factors
, store in new column in data
. apologize terrible explanation. hope example help, , happy answer questions!
factors<-data.frame(c(na,2,na),c(na,3,1)) colnames(factors)<-c("v1","v2") row.names(factors)<-c("col1data","col2data","col3data") factors data<-data.frame(c(2,4,2),c(1,1,2),c(3,3,3)) colnames(data)<-c("col1data","col2data","col3data") row.names(data)<-c("person1","person2","person3") data #in dataframe factors row col2data present (i.e. not na) under factor v1 #go dataframe data each person , make new column called v1 holds value of col2data #do factor v2 , average values come 1 number each person. final result data<-data.frame(c(2,4,2),c(1,1,2),c(3,3,3),c(1,1,2),c(2,3,2.5)) colnames(data)<-c("col1data","col2data","col3data","v1","v2(avg col2 , col3)") row.names(data)<-c("person1","person2","person3") data
i try break steps (as understand process):
factors
not na data
columns. data
, store in new variable called column name of column in data
(eg v1
) each person
you can taking row means of data
limited appropriate columns:
cbind(data, apply(factors, 2, function(x) rowmeans(data[,!is.na(x),drop=false]))) # col1data col2data col3data v1 v2 # person1 2 1 3 1 2.0 # person2 4 1 3 1 2.0 # person3 2 2 3 2 2.5
Comments
Post a Comment