Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ddply函数和中的错误?_R_Plyr - Fatal编程技术网

R ddply函数和中的错误?

R ddply函数和中的错误?,r,plyr,R,Plyr,第一次在这里发布!我在使用ddply函数时遇到问题。我有一个表,我想用“LC”列总结,并在“Area”列中添加值: 基于这一数据框架,我预计如下所示: LC Area 4 86108.0 6 215270.0 7 456372.4 应用ddply函数,我得到以下结果: > ddply(x, 'LC', sum) LC V1 1 4 86113.4 2 6 215278.0 3 7 456406.5 格式是完美的,但值中存在一些差异。例如,类7的值应为456

第一次在这里发布!我在使用ddply函数时遇到问题。我有一个表,我想用“LC”列总结,并在“Area”列中添加值:

基于这一数据框架,我预计如下所示:

LC   Area
4  86108.0
6 215270.0
7 456372.4
应用ddply函数,我得到以下结果:

> ddply(x, 'LC', sum)
  LC       V1
1  4  86113.4
2  6 215278.0
3  7 456406.5
格式是完美的,但值中存在一些差异。例如,类7的值应为456372.4,而ddply报告的值为456406.5。相差34.1。所有的数值都计算错了

有人能解释一下我为什么会有这个问题吗?我是不是遗漏了什么?我的代码错了吗


谢谢大家!

您的方法有两个问题:

  • 您需要告诉
    ddply
    要加多少(
    Area
    )。如果不指定列,
    ddply
    对所有列的值求和(
    ID
    per
    区域
  • 您可以使用
    summary
    参数聚合数据
此代码适用于:

x <- read.table(text="  ID LC  per     Area
1  1  7 0.29  62428.3
2  1  7 0.79 170063.3
3  1  4 0.40  86108.0
4  1  7 0.43  92566.1
5  1  6 1.00 215270.0
6  1  7 0.61 131314.7", header = TRUE)


library(plyr)

ddply(x, .(LC), summarise, sum(Area))

太快了!非常感谢你。这是我第一次尝试使用plyr。@user1896882不客气。如果此答案解决了您的问题,您可以接受以下答案:。
x <- read.table(text="  ID LC  per     Area
1  1  7 0.29  62428.3
2  1  7 0.79 170063.3
3  1  4 0.40  86108.0
4  1  7 0.43  92566.1
5  1  6 1.00 215270.0
6  1  7 0.61 131314.7", header = TRUE)


library(plyr)

ddply(x, .(LC), summarise, sum(Area))
  LC      ..1
1  4  86108.0
2  6 215270.0
3  7 456372.4