Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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中将数据帧转换为这种特定格式?_R_Dataframe - Fatal编程技术网

如何在R中将数据帧转换为这种特定格式?

如何在R中将数据帧转换为这种特定格式?,r,dataframe,R,Dataframe,我在R中的当前数据帧只有两列,即经度和纬度。大约有1500条记录(行),其中包括大量重复记录 数据帧的摘录如下所示: longitude latitude 57.408999 -20.208104 57.667991 -20.13641 57.539122 -20.103416 57.502332 -20.124798 57.414653 -20.261872 57.65949 -20.126768 57.468383 -20.223031 57.754464

我在
R
中的当前数据帧只有两列,即经度和纬度。大约有1500条记录(行),其中包括大量重复记录

数据帧的摘录如下所示:

longitude   latitude
57.408999   -20.208104
57.667991   -20.13641
57.539122   -20.103416
57.502332   -20.124798
57.414653   -20.261872
57.65949    -20.126768
57.468383   -20.223031
57.754464   -20.25823
57.754464   -20.25823
57.680745   -20.121893
57.65949    -20.179457
57.669408   -20.177538
57.702715   -20.211515
我想将此数据帧转换为以下格式:

longitude   latitude    emp emp2
57.408999   -20.208104  1   0.1
57.667991   -20.13641   11  1.1
57.539122   -20.103416  16  1.6
57.502332   -20.124798  10  1
57.414653   -20.261872  1   0.1
57.65949    -20.126768  2   0.2
57.468383   -20.223031  17  1.7
57.754464   -20.25823   9   0.9
57.754464   -20.25823   13  1.3
57.680745   -20.121893  13  1.3
57.65949    -20.179457  4   0.4
57.669408   -20.177538  3   0.3
57.702715   -20.211515  1   0.1
emp
将是一个新的列,它是每个经度和纬度的频率。因此,我的数据帧现在只有唯一的经度和纬度以及它们各自的计数

emp2
只是
emp
的值除以10

这可以用R完成吗?如果是,我们将非常感谢您的帮助


由于我是R新手,我不知道从哪里开始解决这个问题。

使用
dplyr
的简单方法是

library(dplyr)
df %>%
  group_by(longitude, latitude) %>%
  summarise(emp = n(), 
            emp2 = emp/10)

备选方案
base R
使用
aggregate
的解决方案

attach(df)
df <- aggregate(df, by=list(longitude, latitude), FUN=length)
colnames(df) <- c('longitude', 'latitude', 'emp', 'emp2')
df$emp2 <- df$emp2 / 10
附加(df)
df