SORU
6 EYLÜL 2010, PAZARTESİ


R bir dataframe için bir sütun ekleme

Aşağıdaki dataframe (df) var

 start     end
1    14379   32094
2   151884  174367
3   438422  449382
4   618123  621256
5   698271  714321
6   973394  975857
7   980508  982372
8   994539  994661
9  1055151 1058824
.   .       .
.   .       .
.   .       .

Ve sayısal değerler ile uzun bir vektör (vec).

Her satır için başka bir sütun eklemek için, vec ilgili yerlere değerler ile demek istiyorum. örneğin, ilk satır mean(vec[14379:32094]) olacak. transform ile oynamayı denedim ama bu basit görevi gerçekleştirmek için mümkün değildi.

CEVAP
6 EYLÜL 2010, PAZARTESİ


O apply() için oldukça standart bir durum

R> vec <- 1:10
R> DF <- data.frame(start=c(1,3,5,7), end=c(2,6,7,9))
R> DF$newcol <- apply(DF,1,function(row) mean(vec[ row[1] : row[2] ] ))
R> DF
  start end newcol
1     1   2    1.5
2     3   6    4.5
3     5   7    6.0
4     7   9    8.0
R> 

Ayrıca eğer isterseniz plyr kullanabilirsiniz ama burada temel R. işlevleri ötesinde gerçek bir ihtiyaç

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • ParryGripp

    ParryGripp

    12 AĞUSTOS 2006