2012-09-06 5 views
10

열 이름을 망가 뜨리지 않고 data.frame을 사용할 수 있습니까?열 이름을 망가 뜨리지 않고 data.frame을

$`Canon PowerShot` 
[1] 9.997803e-01 9.997318e-01 3.327920e-01 3.327920e-01 9.988220e-01 
[6] 4.030871e-05 4.928497e-05 

$`Casio Exilim` 
[1] 5.322024e-06 9.999646e-01 5.322024e-06 5.322024e-06 9.999646e-01 
[6] 5.322024e-06 9.999646e-01 

$FinePix 
[1] 3.850036e-05 9.998887e-01 6.650074e-02 6.650074e-02 9.998465e-01 
[6] 9.998465e-01 4.345598e-05 

$`Kodak EasyShare` 
[1] 3.548812e-05 9.998604e-01 3.996137e-01 3.996137e-01 9.987841e-01 
[6] 3.179604e-05 2.789861e-05 

$`Nikon Coolpix series` 
[1] 9.156401e-02 9.998091e-01 1.995972e-01 1.995972e-01 9.996341e-01 
[6] 7.033741e-05 8.499410e-05 

을하지만 do.call(data.frame, my_list) 사용 후, 나는이 얻을 :

Canon.PowerShot Casio.Exilim  FinePix Kodak.EasyShare 
1 9.997803e-01 5.322024e-06 3.850036e-05 3.548812e-05 
2 9.997318e-01 9.999646e-01 9.998887e-01 9.998604e-01 
3 3.327920e-01 5.322024e-06 6.650074e-02 3.996137e-01 
4 3.327920e-01 5.322024e-06 6.650074e-02 3.996137e-01 
5 9.988220e-01 9.999646e-01 9.998465e-01 9.987841e-01 
6 4.030871e-05 5.322024e-06 9.998465e-01 3.179604e-05 
7 4.928497e-05 9.999646e-01 4.345598e-05 2.789861e-05 
    Nikon.Coolpix.series 
1   9.156401e-02 
2   9.998091e-01 
3   1.995972e-01 
4   1.995972e-01 
5   9.996341e-01 
6   7.033741e-05 
7   8.499410e-05 

(. 열 이름 대신 ''의 방법 참고)

+0

는'check.names를 인수를 사용 = F ' – mnel

답변

13

당신을 나는 구조 다음 한

Rcheck.names = FALSE을 설정하여 이름을 구문 적으로 유효한 이름으로 변경하는 것을 중지 할 수 있습니다. 자세한 내용은 ?data.frame을 참조하십시오.

# assuming your data is in a list called my_list 
do.call(data.frame, c(my_list, check.names = FALSE)) 
+0

that 's, thanks – Arg

+2

그러나 목록의 이름과 마찬가지로 열 이름을 역 따옴표로 묶어야합니다. R이 기본적으로 공백을 바꾸려하는 한 가지 이유는 나중에 (예 : 열 이름에 탭 완성을 사용할 때) 조작이 쉬워 진다는 것입니다. – neilfws

4

data.frames in R은 실제로 목록입니다. 정말 멋진

data.frame(my_list, check.names = FALSE) 

이 내가 생각 data.frames에 lapply를 사용의 가능성을 열어 알고있다 : 따라서,이 또한 유효

my_data <- data.frame(my_list, check.names = FALSE) 
lapply(my_data, IQR) 
관련 문제