Saya baru mengenal r dan memiliki kumpulan data yang rumit, jadi harap penjelasan saya benar. Saya memiliki beberapa bingkai data yang perlu saya gunakan untuk melakukan serangkaian hal. Ini salah satu contohnya. Saya memiliki tiga bingkai data. Salah satunya adalah daftar nama spesies dan kode terkait:
>df.sp
Species Code
Picea PI
Pinus CA
Lainnya adalah daftar lokasi dengan data kelimpahan spesies untuk berbagai lokasi (dir). Sayangnya, urutan spesiesnya berbeda.
>df.site
Site dir total t01 t02 t03 t04
2 Total PI CA AB T
2 N 9 1 5 na na
2 AB ZI PI CA
2 S 5 2 2 1 4
3 DD EE AB YT
3 N 6 1 1 5 3
3 AB YT EE DD
3 S 5 4 3 1 1
Kemudian saya juga memiliki kerangka data sifat-sifat yang sesuai dengan spesiesnya:
>df.trait
Species leaft rootl
Picea 0.01 1.2
Pinus 0.02 3.5
Contoh satu hal yang ingin saya lakukan adalah mendapatkan nilai rata-rata untuk setiap sifat (df.trait$leaft dan df.trait$rootl) untuk semua spesies per situs (df.site$Site) dan per lokasi situs (df. situs$Situs N, S). Jadi hasilnya untuk baris pertama:
Site dir leaft rootl
2 N 0.015 2.35
Saya harap itu masuk akal. Sangat rumit bagi saya untuk memikirkan bagaimana cara melakukannya. Saya telah mencoba bekerja dari postingan ini dan ini (dan banyak lainnya) tetapi hilang. Terima kasih untuk bantuannya. Sangat dihargai.
PEMBARUAN: Berikut adalah contoh df.site sebenarnya (dikurangi) menggunakan dput:
> dput(head(df.site))
structure(list(Site = c(2L, 2L, 2L, 2L, 2L, 2L), dir = c("rep17316",
"N", "", "S", "", "SE"), total = c("Total", "9", "",
"10", "", "9"), t01 = c("PI", "4", "CA", "1", "SILLAC",
"3"), t02 = c("CXBLAN", "3", "ZIZAUR", "4", "OENPIL", "2"),
t03 = c("ZIZAPT", "1", "ECHPUR", "2", "ASCSYR", "2")), .Names = c("site", "dir", "total", "t01", "t02", "t03"), row.names = 2:7, class = "data.frame")
df.site
terlihat berada dalam kondisi yang sangat buruk ketika kolom-kolomnya tidak memiliki tipe yang konsisten (misalnya, kolomtotal
memiliki kata-kata sepertiTotal
dan angka-angka seperti9
, kolomt04
memiliki kata-kata seperti"T"
(kecuali itu boolean BENAR?), string seperti"na"
yang mungkin berisi nilai yang hilangNA
, angka seperti4
, dan string biasa seperti"CA"
. Langkah pertama pastinya adalah membuat data tersebut berbentuk. Bisakah Anda membagikan subset bingkai data tersebut dengandput
sehingga dapat disalin/ditempel dan kita dapat melihat semua tipe kolom? (Berbagi yang lain dengandput()
juga akan menyenangkan...) - person Gregor Thomas   schedule 12.02.2019dput(droplevels(df.site[1:10, ]))
mungkin bagus. - person Gregor Thomas   schedule 12.02.2019df.site
dan memperbaiki proses impor daripada mencoba memperbaiki data kacau yang dihasilkan.... tanpa melihat contoh sumbernya, sulit untuk mengetahui apakah itu akan terjadi. menjadi kurang bekerja atau tidak. - person Gregor Thomas   schedule 12.02.2019Species
Anda akan lebih tepat diberi namagenus
? :) - person DanTan   schedule 12.02.2019