2017-04-09 4 views
0

Angenommen, ich habe eine 2-mal-3-Matrix von Nullen A=matrix(0,2,3) in R und einem anderen Datenrahmen mit 2 Spalten, wie DF = data.frame(a=c(1,1,1,1),b=c(2,2,2,2)). Ich möchte eine Zeile des Datenrahmens einer Spalte der Matrix zuweisen, wie A[,1]=DF[4,]. Das Problem ist, dass A in eine Liste konvertiert wird und die Indexierung von A komplett weggeworfen wird, vermutlich wegen der unterschiedlichen Zeilennummerierung und Spaltennamen von DF. Wie komme ich hier zurecht?Wie verhindert man, dass Matrix in R liste wird?

Antwort

0

DF[4, ] gibt ein Datenfeld mit einer Zeile, das eine Liste ist, während Matrix ein atomarer Vektor ist, der nur einen Datentyp enthalten kann. Sie müssen die Datenrahmenzeile in unlist konvertieren und in einen atomaren Vektor konvertieren, bevor Sie sie der Matrix zuweisen:

A[,1] = unlist(DF[4,]) 

A 
#  [,1] [,2] [,3] 
#[1,] 1 0 0 
#[2,] 2 0 0 
Verwandte Themen