R如何创建动态data.frame?

R如何创建动态data.frame?,r,dataframe,shiny,R,Dataframe,Shiny,我是R新手,我想创建一个dynamic data.frame 请让我解释一下 我有这张桌子: PC;COUN;COMMUN;BUILD;HOUSING;PERSON;SEX 01;0101;010101; 001; 01; 001; 1 01;0101;010101; 001; 01; 002; 1 01;0101;010101; 001; 02; 001; 2 01;0101;010101; 001; 03; 001;

我是R新手,我想创建一个dynamic data.frame

请让我解释一下

我有这张桌子:

 PC;COUN;COMMUN;BUILD;HOUSING;PERSON;SEX
 01;0101;010101;  001;     01;   001;  1
 01;0101;010101;  001;     01;   002;  1
 01;0101;010101;  001;     02;   001;  2
 01;0101;010101;  001;     03;   001;  1
 01;0101;010101;  002;     01;   001;  2
 01;0101;010101;  002;     01;   002;  1
 01;0101;010101;  002;     02;   001;  1
 01;0101;010101;  002;     02;   002;  2
 01;0101;010101;  002;     02;   003;  2
 01;0102;010102;  001;     01;   001;  1
 01;0102;010102;  001;     01;   002;  2
 01;0102;010102;  001;     01;   003;  1
 01;0102;010102;  002;     01;   001;  2
 01;0102;010102;  002;     01;   002;  2
 01;0102;010102;  002;     01;   003;  1
 01;0102;010102;  003;     01;   001;  1
 01;0102;010102;  003;     02;   001;  1
 01;0102;010102;  003;     02;   002;  2
 01;0102;010102;  003;     03;   001;  1
 01;0102;010102;  003;     03;   002;  2
PC变量是城市代码,CONU是县代码。COMMUN是PC与CONU的连接,是地区ID。BUILD是建筑编号,HOUSING表示建筑内的房屋,PERSON:居住在房屋内的人数。所有变量均为字符格式

我的桌子上有20多万人和2000多个地区

在Server.R中,我有3个输入框来选择要显示数据的地区:输入$com、输入$quar(conu的前两个字符)、输入$dis(conu的最后两个字符)

我想创建一个包含每个地区数据的主数据框。因此,我使用以下命令创建了一个数据框:

 dfDistrict <- data.frame(
        Districts = c(unique(BI14$COMMUN [BI14$PC == input$com &
                      stri_sub(BI14$COUN,1,2) == input$quar]))
当然,我会在这之后添加许多其他变量

我试过了,但不起作用:

 dfDistrict <- data.frame(
    Districts = group_by(COMMUN))

dfDistrict就像迈克在评论中说的那样,
dplyr
是一条路要走

通过以下方式接收所需的数据帧:

library(dplyr)

result <- df %>%
  group_by(COMMUN) %>%
  summarize(total=n())
返回的
数据
将按照您在过滤器小部件中设置的方式进行过滤(在本例中为
filter1
filter2
)。注意:当您将创建的数据集分配给另一个变量时,需要将其添加到括号中。例如:

df <- filteredData()

df您忽略了实际提出一个具体问题。但是,您的问题的一般答案是:学会使用
dplyr
。这是做这类事情最简单、最直接、最灵活的方法——尽管R至少有六种其他方法。感谢您的回复,但我按照说明尝试了dplyr group_,但它似乎不适用于角色。你知道还有什么可以尝试的吗?非常感谢。你能提供一个所需输出的例子吗?当然,它适用于字符,尽管人们通常会混淆因子级别。把你试过的贴出来。也在这里发布你想要的fexjoo。太好了!它起作用了!非常感谢fexjoo和Mike的帮助。
library(dplyr)

result <- df %>%
  group_by(COMMUN) %>%
  summarize(total=n())
filteredData <- reactive({
  data <- filter(
    df, df$col1 %in% input$filter1 & df$col2 %in% input$filter2
  )
})
df <- filteredData()