제가 함께, 말하자면, 변수의 수 100 개 관측 기술 필드들을 포함하는 MATLAB 구조체를 가지고MATLAB 구조체를 R 데이터 프레임에로드하는 방법은 무엇입니까? (MATLAB 출력)은 다음과 같이
I이 데이터 R을 사용할mystruct =
fieldA: [100x1 double]
fieldB: [100x1 double]
fieldC: [100x1 double]
fieldD: [100x1 char]
fieldE: {100x1 cell}
, 그래서 구조체를 .mat 파일로 저장합니다. 패키지를 사용하여 가져옵니다. 내가 R에 새로 온 사람 때문에 다음 가능성이 서투른,하지만 난 잘 개별 필드 (R 코드)에 액세스 할 수 있습니다
> f = readMat('myfile.mat')
> data = f$mystruct
> data
, , 1
[,1]
fieldA Numeric,100
fieldB Numeric,100
fieldC Numeric,100
fieldD Character,100
fieldE List,100
> data = data[, , 1]
> df <- data.frame(fieldA = data$fieldA, fieldB = data$fieldB)
확인을, 그래서 여기에 질문 : 어떻게 위의 있도록 일반화 할 수 있습니다 원래 구조체의 임의의 수의 필드에 대해 데이터 프레임이 생성됩니까? 필자의 5 개 필드 예제에서는 수동으로 처리 할 수 있지만 다음 데이터 세트에는 많은 필드가 있으므로이 필드를 모두 입력하고 싶지는 않습니다.
this question에 따르면, 나는 틀린 크기의 데이터 프레임 (각각 1 변수의 401 obs와 105 변수의 401 obs)을 구성하는 rbind()
과 ldply()
을 시도했습니다.
'데이터'에 무엇이 있는지에 따라 다르지만 (아마도'str (data)'의 출력을 게시 할 수 있습니다), 아마도'df <- as.data.frame (data)'만 있으면됩니다. – Ista
'data '지금 포함된다; 이렇게하면 100 obs의 104 변수를 가진 데이터 프레임이 생깁니다 (5 개의 변수 중 100 obs이어야합니다) –
FieldE는 길이가 1 인 변수 1 개가 아닌 길이 1의 변수 100 개로 변환됩니다. 'drop = c ("singletonLists")'도움? – koekenbakker