Tôi có một tập lệnh yêu cầu cả thư viện reshape
và reshape2
. Tôi biết đây là thực hành kém, nhưng tôi nghĩ rằng
plyr
(hoặc một thư viện khác mà tôi đang sử dụng)
Vennerable
đang tải reshape
và tôi đã tự mình sử dụng reshape2
ở nhiều nơi.Mặt nạ gói định hình lại ngăn ngừa sự tan chảy từ các cột đặt tên
Vấn đề là các mặt nạ của reshape2
bởi reshape
đang gây ra vấn đề cho các melt
chức năng
# Example data frame
df <- data.frame(id=c(1:5), a=c(rnorm(5)), b=c(rnorm(5)))
# With just reshape2, variable and value columns are labelled correctly
library(reshape2)
melt(df, measure.vars=c("a", "b"), variable.name="type", value.name="distance")
id type distance
1 1 a -2.0233666
2 2 a 0.4625188
3 3 a -2.8688127
4 4 a 0.8151644
5 5 a -0.4574464
6 1 b 1.3197784
7 2 b 1.6213146
8 3 b 1.3508913
9 4 b -1.6483839
10 5 b -1.1342157
# But my script also has reshape loaded
library(reshape)
Loading required package: plyr
Attaching package: ‘reshape’
The following object(s) are masked from ‘package:plyr’:
rename, round_any
The following object(s) are masked from ‘package:reshape2’:
colsplit, melt, recast
# When calling melt in this environment, variable and value columns stick to
# their default names
melt(df, measure.vars=c("a", "b"), variable.name="type", value.name="distance")
id variable value
1 1 a -2.0233666
2 2 a 0.4625188
3 3 a -2.8688127
4 4 a 0.8151644
5 5 a -0.4574464
6 1 b 1.3197784
7 2 b 1.6213146
8 3 b 1.3508913
9 4 b -1.6483839
10 5 b -1.1342157
Tôi nghĩ tôi đặc biệt có thể gọi melt
từ reshape2
sử dụng reshape2::melt
nhưng tôi vẫn nhận được cùng một vấn đề.
Có cách nào dễ dàng để giải quyết vấn đề này không? Nếu không, tôi sẽ phải tự gắn nhãn tên cột ngay sau mỗi lần gọi.
Tôi không nghĩ rằng phiên bản mới nhất của 'plyr' sử dụng được 'reshape' nữa. Đó có phải là lý do duy nhất bạn nhập 'reshape'? – Peyton
Tôi không nhập khẩu nó cá nhân, nhưng tôi nghĩ rằng một thư viện là và tôi không thể làm việc ra. Tôi nghi ngờ nó là plyr vì thứ tự của ouput. – MattLBeck
Kiểm tra từng gói như sau: 'installed.packages() [installed.packages() [, 1] ==" ggplot2 ",]' – Roland