CSV sütunlarını kategorik veri olarak doğrudan okumak mümkün müdür?


10

CSV ile gelen bir tıbbi anketten (100+ kodlu sütunlarla) verileri R ile analiz etmem gerekiyor. İlk analiz için çıngırak kullanacağım ama perde arkasında hala R var.

I Eğer read.csv () dosyası, sayısal kodların kolonların sayısal veri olarak kabul edilir. Onlardan faktör () ile kategorik sütunlar oluşturabileceğimin farkındayım, ancak 100+ sütun için bunu yapmak bir acıdır.

Umarım R'ye sütunları doğrudan faktör olarak içe aktarmasını söylemenin daha iyi bir yolu vardır. Ya da en azından bunları daha sonra yerine dönüştürmek için.

Teşekkür ederim!


3
Burada R soruları almaktan mutluluk duyuyoruz. Bkz. Meta.stats.stackexchange.com/questions/252/…
Rob Hyndman

Yanıtlar:


15

colClassesVeri sütunlarınızın sınıflarını belirtmek için bağımsız değişkeni kullanabilirsiniz . Örneğin:

data <- read.csv('foo.csv', colClasses=c('numeric', 'factor', 'factor'))

ilk sütuna sayısal, ikinci ve üçüncü faktöre faktör atar. Çok fazla sütununuz olduğundan bir kısayol şunlar olabilir:

data <- read.csv('foo.csv', colClasses=c('numeric', rep('factor', 37), 'character'))

veya bu tür bir varyasyon (yani ilk sütuna sayısal, sonraki 37 sütuna faktör, ardından son sütuna karakter ata).


Sınıfları değişken adına göre belirtmek istiyorsanız (örneğin, yalnızca bir değişkene sınıf atamak için) bu
Waldir Leoncio

3

veya sadece verileri okuduktan sonra yapın

dat <- read.csv("kdfjdkf")
apply(dat, 2, factor)

ancak bu tür Q muhtemelen Yığın Taşması için daha uygundur .

edit : aşağıya bakınız.


1
Bkz. Meta.stats.stackexchange.com/questions/252/… mevcut fikir birliği, bunun uygun bir soru olduğudur , eğer metada melodiyi kabul etmiyorsanız, yeni soru askerine eziyet etmeyin.
russellpierce

1
Tamam, ama muhtemelen saf R sorusuna (en azından şimdilik) yanıt almak için daha büyük bir kitleniz olacak - dolayısıyla, "muhtemelen". "eziyet" güçlü bir kelimedir ha? :)
Ağustos'ta apeescape

1
Tabii, azap biraz güçlü; Bunun için üzgünüm. Ben sadece soru muhabirleri (bu fikir birliği oldukça net görünüyor) meta hakkında herhangi bir yorum yapmadan StackOverflow için yönlendirme devam (ki biri değil) tekrar suçlu kullanıcıları ile sinirli.
russellpierce

Bu, 0 dolgulu sayıları olan sütunların, sayıların ve eksik değerlerin karışımının olduğu veya yalnızca 'T've değerlerinin 'F'(mantıksal biçime dönüştürüldüğü) olduğu sorunlara yol açabilir .
Max Candocia
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.