Giả sử chúng ta có một khung dữ liệu trông giống nhưTái một khung dữ liệu --- thay đổi hàng để cột
set.seed(7302012)
county <- rep(letters[1:4], each=2)
state <- rep(LETTERS[1], times=8)
industry <- rep(c("construction", "manufacturing"), 4)
employment <- round(rnorm(8, 100, 50), 0)
establishments <- round(rnorm(8, 20, 5), 0)
data <- data.frame(state, county, industry, employment, establishments)
state county industry employment establishments
1 A a construction 146 19
2 A a manufacturing 110 20
3 A b construction 121 10
4 A b manufacturing 90 27
5 A c construction 197 18
6 A c manufacturing 73 29
7 A d construction 98 30
8 A d manufacturing 102 19
Chúng tôi muốn định hình lại này để mỗi hàng đại diện cho một quận (nhà nước và), thay vì ngành công nghiệp hạt, với các cột construction.employment
, construction.establishments
và các phiên bản tương tự để sản xuất. Một cách hiệu quả để làm điều này là gì?
Một cách là tập hợp con
construction <- data[data$industry == "construction", ]
names(construction)[4:5] <- c("construction.employment", "construction.establishments")
Và tương tự cho sản xuất, sau đó làm một hợp nhất. Điều này không quá tệ nếu chỉ có hai ngành, nhưng hãy tưởng tượng rằng có 14 ngành; quá trình này sẽ trở nên tẻ nhạt (mặc dù thực hiện ít hơn bằng cách sử dụng một vòng lặp for
trên các mức độ industry
).
Bất kỳ ý tưởng nào khác?
Ah, được rồi, tôi đang sử dụng '.' thay vì' ... ', vì vậy nó không hoạt động. Cảm ơn! – Charlie