Her öğenin bir sütunu içeren bir veri karesi olduğu bir liste (liste1) var.Bir liste içindeki veri çerçevelerinin sütun adlarını değiştirirken hata oluştu. R
Tüm kolon adları, "x" ile aynıdır. Sütun isimlerini "x1", "x2", ...., "xn" olarak değiştirmek istiyorum.
kod aşağıda kullanın:
lapply(list1, function(x) setNames(x, "x",paste("x",1:seq_along(list1))))
Ancak bu kod çalışmaz. Bu kod neden çalışmıyor? Herhangi bir yardım için çok memnun olacağım. Çok teşekkürler.
David Arenburg @, (10 Liste1 olarak Elment sayıdır) aşağıdaki gibi kod düzenlendi: Bu kod hata vermez
lapply(list1, function(z) setNames(z,paste0("x",1:10)))
ama aynı zamanda kolon isimde sütun adları değişmez ars hala "x".
Aşağıdakileri düzenledim, ancak hala çalışmıyor.
for(i in 1:10)
{
list2[[i]]<-setNames(data.frame(list1[[i]])[,1], paste0("x",1:10)[i])
}
Şimdilik seq_along
kaldırdım. İstenilen sonucu aldıktan sonra üzerinde çalışacağım.
Liste1'in her öğesi bir veri çerçevesidir ve her veri çerçevesinin yalnızca bir sütunu vardır.
Bu yeniden üretilemez, ancak '1: seq_along (list1)' düzgün çalışmaz. 1: seq_along (mtcars) 'ı deneyin. Bu sadece “seq_along (mtcars)” olmalıdır. Ama sizin durumunuzda, 'x '' yi hala 'list1' 'den' seq_along'ya geçerken nasıl kullanacağınız net değil. Bu bana hiç mantıklı gelmiyor. Ayrıca, 'setNames' kullanımınız belirsizdir. 2 girdiye değil, 3'e sahip olmalı. Muhtemelen bu, 'yapıştır' değil 'yapıştırması' olmalıdır, çünkü muhtemelen isimlerinizin sentetik olarak geçerli olmasını istiyorsunuz. –
Sonucu bir nesneye mi ataıyorsunuz? –
'setNames' yerinde değişiklik yapmıyor. Bir yere ataman gerekiyor. Daha önce de belirttiğim gibi, [bu tekrarlanabilir değildir] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Ve seq_along'a ne oldu? Ve "* bir sütundan oluşur" ile ne demek istiyorsun? Orada kaç tane sütun var? –