0

我有一个这样的输入文件

V1 V2 V3 V4.............V60 
11 22 33 44.............89 
21 98 22 33.............09 
33 44 55 78.............20

上述文件有 3000 多行,每行 60 列。

当我尝试density(data, kernel="gaussian", bw=15)在我的 r 提示符下使用时,它会生成一条错误消息

Error in density.default(data) : argument 'x' must be numeric

但是,当我尝试时density(data$V1, kernel="gaussian", bw=15),它工作正常。

我想知道是否有一个命令来计算整个文件的密度,而不是为每一列计算 60 次。

4

2 回答 2

1

您可能正在寻找sapplyapply
您可以使用

 apply(myDataName,  2,  density, kernel="gaussian", bw=15)

如果您的列是factors 而不是numeric,则需要先转换它们。

于 2013-02-21T17:18:15.820 回答
0

您的对象很可能是一个数据框(这是使用和data之类的工具读取数据时的默认设置)。 read.tableread.csv

如果要处理每一列(为每一列创建单独的密度图),则可以使用该lapply函数。

如果您想要基于所有数据的单一密度(列没有任何意义),那么您可以使用该unlist函数将其全部转换为一个大向量。更好的方法可能是使用该scan函数而不是read.table将数据加载到向量中以开始并一起跳过数据帧。

于 2013-02-21T17:20:41.253 回答