R Melt正在用我的数据制造克伦伯格怪物

R Melt正在用我的数据制造克伦伯格怪物,r,melt,R,Melt,我有一个数据帧: structure(list(diag = structure(list(svm.ca = 0.894598155467721, rpart.ca = 1), .Names = c("svm.ca", "rpart.ca")), kappa = structure(list( svm.ca = 0.838953088986906, rpart.ca = 1), .Names = c("svm.ca", "rpart.ca")), rand = structure(

我有一个数据帧:

structure(list(diag = structure(list(svm.ca = 0.894598155467721,     rpart.ca = 1), .Names = c("svm.ca", "rpart.ca")), kappa = structure(list(    svm.ca = 0.838953088986906, rpart.ca = 1), .Names = c("svm.ca", "rpart.ca")), rand = structure(list(svm.ca = 0.871202561348254,     rpart.ca = 1), .Names = c("svm.ca", "rpart.ca")), crand = structure(list(    svm.ca = 0.715005579974998, rpart.ca = 1), .Names = c("svm.ca", "rpart.ca"))), .Names = c("diag", "kappa", "rand", "crand"), row.names = c("svm", "rpart"), class = "data.frame")
看起来是这样的:

              diag     kappa      rand     crand
svm.ca   0.8945982 0.8389531 0.8712026 0.7150056
rpart.ca         1         1         1         1
我试图遵循svm的方向(第3页),我想显示这些值的分组直方图。所以,我融化了我的df:

df <- melt(as.matrix(histdf))
我也试过:

> df <- melt(histdf)
Using  as id variables
> df
  variable     value NA
1     diag 0.8945982  1
2     diag 0.8945982  1
3    kappa 0.8389531  1
4    kappa 0.8389531  1
5     rand 0.8712026  1
6     rand 0.8712026  1
7    crand 0.7150056  1
8    crand 0.7150056  1
>测向
可变值NA
1图0.8945982 1
2图0.8945982 1
3卡帕0.8389531 1
4卡帕0.8389531 1
5兰特0.8712026 1
6兰特0.8712026 1
7克朗0.7150056 1
8克朗0.7150056 1
和来自:


rownames(histdf)我从
classAgreement
重构了原始变量,如下所示:

svm.ca <- structure(list(diag = 0.704225352112676, kappa = 0.589482378854626, 
    rand = 0.746881287726358, crand = 0.367673479030732), .Names = c("diag", 
"kappa", "rand", "crand"))
rpart.ca <- structure(list(diag = 0.732394366197183, kappa = 0.607049228080396, 
    rand = 0.720724346076459, crand = 0.361367036482943), .Names = c("diag", 
"kappa", "rand", "crand"))
现在这是一个普通的、不包含数据帧的列表<代码>重塑2::melt(dd)
,或
tidyr::GARGET(dd,“变量”、“值”)
,工作正常


以下是最终代码:

df<-as.data.frame(Map(rbind,svm.ca,rpart.ca))
df$Names<-c("svm","rpart")
df.m<-melt(df)
ggplot(df.m, aes(Names, value),group) +   
  geom_bar(aes(fill = variable), position = "dodge", stat="identity")

dfI根据
classAgreement
重构原始变量,如下所示:

svm.ca <- structure(list(diag = 0.704225352112676, kappa = 0.589482378854626, 
    rand = 0.746881287726358, crand = 0.367673479030732), .Names = c("diag", 
"kappa", "rand", "crand"))
rpart.ca <- structure(list(diag = 0.732394366197183, kappa = 0.607049228080396, 
    rand = 0.720724346076459, crand = 0.361367036482943), .Names = c("diag", 
"kappa", "rand", "crand"))
现在这是一个普通的、不包含数据帧的列表<代码>重塑2::melt(dd)
,或
tidyr::GARGET(dd,“变量”、“值”)
,工作正常


以下是最终代码:

df<-as.data.frame(Map(rbind,svm.ca,rpart.ca))
df$Names<-c("svm","rpart")
df.m<-melt(df)
ggplot(df.m, aes(Names, value),group) +   
  geom_bar(aes(fill = variable), position = "dodge", stat="identity")

dfIt是因为列都在列表中。请检查
str(histdf)
您的预期输出。也许
melt(sapply(histdf,unlist))
最好还是向上游走,想想你最终是如何得到这个数据结构的,而不是为这个特定的问题想出一个解决方案…@BenBolker我在svm和rpart模型上运行了classAgreement,正如在这个svm小插曲中所建议的那样:(第3页),并将它们与
histdfIt组合成一个数据帧,因为列都是列表。请检查
str(histdf)
您的预期输出。也许
melt(sapply(histdf,unlist))
最好还是向上游走,想想你最终是如何得到这个数据结构的,而不是为这个特定的问题想出一个解决方案…@BenBolker我在svm和rpart模型上运行了classAgreement,正如在这个svm小插曲中所建议的那样:(第3页),并将它们与
histdfThanks组合成一个数据帧!成功了。我不得不在融化前加上名字,现在情节看起来很棒。谢谢你的帮助,谢谢!成功了。我不得不在融化前加上名字,现在情节看起来很棒。谢谢你的帮助。
df<-as.data.frame(Map(rbind,svm.ca,rpart.ca))
df$Names<-c("svm","rpart")
df.m<-melt(df)
ggplot(df.m, aes(Names, value),group) +   
  geom_bar(aes(fill = variable), position = "dodge", stat="identity")