Mam skrypt, który wymaga bibliotek zarówno reshape
, jak i reshape2
. Wiem, że to jest kiepska praktyka, ale myślę, że
plyr
(lub inna biblioteka, której używam)
Vennerable
ładuje się reshape
i osobiście użyłem reshape2
w wielu miejscach.Przekształć maskowanie pakietów, aby zapobiec stopieniu nazw kolumn
Problemem jest to, że maskowanie reshape2
przez reshape
powoduje problemy dla melt
funkcji
# 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
myślałem mogę specjalnie zadzwonić melt
z reshape2
użyciu reshape2::melt
ale wciąż ten sam problem.
Czy istnieje prosty sposób obejścia tego? Jeśli nie, będę musiał ręcznie zmienić nazwy kolumn bezpośrednio po każdym wywołaniu melt.
Nie sądzę najnowsza wersja '' reshape' plyr' korzysta już. Czy to jest jedyny powód, dla którego importujesz 'reshape'? – Peyton
Nie importuję tego osobiście, ale myślę, że jest inna biblioteka i nie mogę tego obliczyć. Podejrzewałem, że to był plyr z powodu zamawiania ouput. – MattLBeck
Sprawdź każdy z pakietów w następujący sposób: 'installed.packages() [installed.packages() [, 1] ==" ggplot2 ",]' – Roland