R 聚合需要乐趣。聚合:长度用作默认值

R 聚合需要乐趣。聚合:长度用作默认值,r,reshape,R,Reshape,我有一个文件,我想用R对它进行重塑:这些是我正在运行的命令 x <- data.frame(read.table("total.txt", sep=",", header=T) y <- melt(x, id=c("Hostname", "Date", "MetricType")) 有没有一种不挂断服务器的简单方法 当我使用library(重塑2)时: yy <- acast(y, Hostname + Date + variable ~ MetricType, fun.ag

我有一个文件,我想用R对它进行重塑:这些是我正在运行的命令

x <- data.frame(read.table("total.txt", sep=",", header=T)
y <- melt(x, id=c("Hostname", "Date", "MetricType"))
有没有一种不挂断服务器的简单方法

当我使用library(重塑2)时:

yy <- acast(y, Hostname + Date + variable ~ MetricType, fun.aggregate=mean)

yy澄清:在下面的讨论中,我指的是
dcast()
,而不是
cast()
。正如Maiasaura在评论中所指出的,来自
重塑
包的函数
cast()
重塑2
包中已被两个函数替换:
dcast()
(用于data.frame输出)和
acast()
(用于数组或矩阵输出)。在任何情况下,我关于需要
fun.aggregate
参数的评论对于
cast()
dcast()
acast()
都同样适用


引发错误的原因是,对于调用
cast()
中的至少一个分类变量组合,data.frame
y
必须至少包含两行数据。如
?cast
(或
?dcast
)中所述:

如果您提供的变量组合不是唯一的 确定原始数据集中的一行,您需要提供 聚合函数“fun.aggregate”

运行下面的代码,看看这是如何工作的,以及如何进行补救。在最后一行代码中,我使用
fun.aggregate
参数告诉
dcast()
使用
mean()
组合变量重复组合的值。取而代之的是,您可以放置最适合您自己情况的聚合函数

library(reshape2)

## A toy dataset, with one row for each combination of variables
d <- expand.grid(Hostname = letters[1:2],
                 Date = Sys.Date() + 0:1,
                 MetricType = LETTERS[3:4])
d$Value <- rnorm(seq_len(nrow(d)))

## A second dataset, in which one combination of variables is repeated
d2 <- rbind(d, d[1,])

## Runs without complaint
dcast(d, Hostname + Date ~ MetricType)

## Throws error asking for an aggregation function
dcast(d2, Hostname + Date ~ MetricType)

## Happy again, with a supplied aggregation function
dcast(d2, Hostname + Date ~ MetricType, fun.aggregate=mean)
library(重塑2)
##一个玩具数据集,每个变量组合有一行

澄清:在下面的讨论中,我指的是
dcast()
,而不是
cast()
。正如Maiasaura在评论中所指出的,来自
重塑
包的函数
cast()
重塑2
包中已被两个函数替换:
dcast()
(用于data.frame输出)和
acast()
(用于数组或矩阵输出)。在任何情况下,我关于需要
fun.aggregate
参数的评论对于
cast()
dcast()
acast()
都同样适用


引发错误的原因是,对于调用
cast()
中的至少一个分类变量组合,data.frame
y
必须至少包含两行数据。如
?cast
(或
?dcast
)中所述:

如果您提供的变量组合不是唯一的 确定原始数据集中的一行,您需要提供 聚合函数“fun.aggregate”

运行下面的代码,看看这是如何工作的,以及如何进行补救。在最后一行代码中,我使用
fun.aggregate
参数告诉
dcast()
使用
mean()
组合变量重复组合的值。取而代之的是,您可以放置最适合您自己情况的聚合函数

library(reshape2)

## A toy dataset, with one row for each combination of variables
d <- expand.grid(Hostname = letters[1:2],
                 Date = Sys.Date() + 0:1,
                 MetricType = LETTERS[3:4])
d$Value <- rnorm(seq_len(nrow(d)))

## A second dataset, in which one combination of variables is repeated
d2 <- rbind(d, d[1,])

## Runs without complaint
dcast(d, Hostname + Date ~ MetricType)

## Throws error asking for an aggregation function
dcast(d2, Hostname + Date ~ MetricType)

## Happy again, with a supplied aggregation function
dcast(d2, Hostname + Date ~ MetricType, fun.aggregate=mean)
library(重塑2)
##一个玩具数据集,每个变量组合有一行

d第一行有一个右括号缺失。(和)哪个版本的整形?
cast
已被
dcast
acast
替换,在
restrape2
中,我尝试使用整形2和dcast以及acast,非工作值正在变得不可用。有什么想法吗?第一行的右边缺了一个帕伦。(和)哪个版本的整形?
cast
已被
dcast
acast
替换,在
restrape2
中,我尝试使用整形2和dcast以及acast,非工作值正在变得不可用。有什么想法吗?找不到dcast,我起诉了cast,但它仍然挂起:我应该澄清:
cast()
,来自
restrape
的包已被弃用,并被
dcast()
(当您需要data.frame输出时)和
acast()
(当您需要数组或矩阵输出时)取代。要查找
dcast
,首先需要执行以下操作:
install.packages(“重塑2”);库(2)
。不过,更大的问题是,您是否尝试在
fun.aggregate
参数中为
cast()
提供函数名。它应该与取代它的
cast()
dcast
acast
功能一起工作……我已经安装了整形2并尝试了它。当我使用这个yy时,可以尝试
fun.aggregate=function(X)mean(X,na.rm=TRUE)
而不是
fun.aggregate=mean
?然后,如果这不起作用,也许可以试试
fun.aggregate=class
,看看您试图取平均值的数据的类别是什么。同样的结果,所有值都是NAcannot find dcast,我起诉了cast,但它仍然挂起:我应该澄清:
cast()
,来自
重塑
包的
已被弃用,并替换为
dcast()
(当需要data.frame输出时)和
acast()
(当需要数组或矩阵输出时)。要查找
dcast
,首先需要执行以下操作:
install.packages(“重塑2”);库(2)
。不过,更大的问题是,您是否尝试在
fun.aggregate
参数中为
cast()
提供函数名。它应该与取代它的
cast()
dcast
acast
功能一起工作……我已经安装了整形2并尝试了它。当我使用这个yy时,可以尝试
fun.aggregate=function(X)mean(X,na.rm=TRUE)
而不是
fun.aggregate=mean
?然后,如果这不起作用,可以尝试
fun.aggregate=class
查看您试图取平均值的数据类别。相同的结果是,所有值均为NA
library(reshape2)

## A toy dataset, with one row for each combination of variables
d <- expand.grid(Hostname = letters[1:2],
                 Date = Sys.Date() + 0:1,
                 MetricType = LETTERS[3:4])
d$Value <- rnorm(seq_len(nrow(d)))

## A second dataset, in which one combination of variables is repeated
d2 <- rbind(d, d[1,])

## Runs without complaint
dcast(d, Hostname + Date ~ MetricType)

## Throws error asking for an aggregation function
dcast(d2, Hostname + Date ~ MetricType)

## Happy again, with a supplied aggregation function
dcast(d2, Hostname + Date ~ MetricType, fun.aggregate=mean)