2012-09-11 11 views
6

satırları silerken otomatik olarak küçültmek, veri çerçevesindeki satır numaralarını düzgün bir şekilde daraltmakta zorluk çekiyorum.R veri çerçevesindeki satır numaralarını R

R'u kullanarak bir metin dosyasından aktardığım "mydata" adlı bir veri kümem var. Veri çerçevesinin 10 sütun ile yaklaşık 200 satır vardır. Bu komutu zaman

mydata <- mydata[-c(3, 7, 9, 199),] 

, satır 3,7,9,199 listeden gitti ancak bu satır numarası kokan:

I kullanarak satır numarası 3, 7, 9, 199 uzaklaştırıldı t otomatik olarak 196'ya küçülür, ancak 200'de kalır. Bu satır numaraları her bir "satır" a, veri çerçevesinin bir parçası olarak eklenmiş gibi hissediyorum.

Bu sorunu nasıl düzeltirim?

Daha da fazla yapmam gereken şey, R Studio'yu kullanarak metin dosyasını içe aktardığımda, herhangi bir sorunum yok. (Yukarıdaki komutu çalıştırdığımda 196'yı görüyorum). Ancak, R kullanırken, bir veri çerçevesindeki satır sayısını listedeki gerçek satır sayısıyla eşleştiremiyorum.

Lütfen bunu nasıl düzelteceğimi söyleyen var mı?

cevap

9

Sadece yapabilirsiniz:

rownames(mydata) <- NULL 

subsetting gerçekleştirdikten sonra. Örneğin

:

> mydata = data.frame(a=1:10, b=11:20) 
> mydata = mydata[-c(6, 8), ] 
> mydata 
    a b 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 
7 7 17 
9 9 19 
10 10 20 
> rownames(mydata) <- NULL 
> mydata 
    a b 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 
6 7 17 
7 9 19 
8 10 20 
+0

Sadece bu komutu koştum ve işe yarıyor !!! teşekkür ederim!! Yine de – Pirate

+0

bir soru daha var. Satırları her kaldırdığımda Boş komutunu çalıştırmam gerekiyor mu? – Pirate

+0

@Marine: Satır sırasını her kaldırdığınızda, satır adlarını ne zaman sıfırlamak istediğinizde yapmanız gerekmez (birden çok kaldırma işleminden sonra olabilir) –

3

Ayrıca bunun yerine Satır numarasının ile yazdırır, aynı şekilde (data.table intro bkz değil mağaza row.names yapar data.table paketini kullanabilirsiniz.

satır isimlerinin ve ile nasıl data.table işleri için tuşları bölümüne bakın fonksiyonları ve pacakges sadece data.frames kabul edersek data.frame gelen tuşları

data.table devralır, bu nedenle bir data.table bir data.frame olduğunu.

örn

library(data.table) 

mydata <- data.table(mydata) 
mydata 
##  a b 
## 1: 1 11 
## 2: 2 12 
## 3: 3 13 
## 4: 4 14 
## 5: 5 15 
## 6: 6 16 
## 7: 7 17 
## 8: 8 18 
## 9: 9 19 
## 10: 10 20 

mydata = mydata[-c(6, 8), ] 
mydata 
##  a b 
## 1: 1 11 
## 2: 2 12 
## 3: 3 13 
## 4: 4 14 
## 5: 5 15 
## 6: 7 17 
## 7: 9 19 
## 8: 10 20