小编wwl*_*wwl的帖子

删除ggplot中的纬度和经度标签

我正在创建明尼苏达州的地图

map.test <- ggplot(kt_geom)+
  geom_polygon(aes(long, lat, group=group), fill="white")+
  geom_path(color="gray48", mapping=aes(long, lat, group=group), size=0.2)

map.test
Run Code Online (Sandbox Code Playgroud)

并显示以下地图。

在此处输入图片说明

如何删除浅灰色背景以及经度和纬度轴?我知道如果我使用 choropleth,这些不会出现,但我需要在 ggplot 中使用一些函数。

r ggplot2

8
推荐指数
2
解决办法
6142
查看次数

按名称模式删除 data.table 中的列

在 R 中,可以根据名称模式轻松地从数据框中删除列:请参阅如何在 R 中按名称模式删除列?例如,将数据子集仅包含名称与条件匹配的列。

> df <- data.frame(A=c(1,2,3), A2=c(1,2,3), B=c(1,2,3), BG=c(2,2,3))
> df[, -grep("A", colnames(df))]
  B BG
1 1  2
2 2  2
3 3  3
Run Code Online (Sandbox Code Playgroud)

但直接将解决方案应用于 data.table 是行不通的。

> dt <- data.table(A=c(1,2,3), A2=c(1,2,3), B=c(1,2,3), BG=c(2,2,3))
> dt[, -grep("A", colnames(df))]
[1] -1 -2
Run Code Online (Sandbox Code Playgroud)

可以做什么?

r data.table

6
推荐指数
1
解决办法
2620
查看次数

插入缺失的年份以完成 data.frame

我正在创建一个数据框,其中包含从 2000 年到 2010 年每个州每年发生的某种事件的数量(假设它们是枪支事件):

states <- c('Texas', 'Texas', 'Arizona', 'California', 'California')
incidents <- c(1, 1, 2, 1, 4)
years <- c(2000, 2008, 2004, 2002, 2007)

DF <- data.frame(states, incidents, years)

> DF
      states incidents years
1      Texas         1  2000
2      Texas         1  2008
3    Arizona         2  2004
4 California         1  2002
5 California         4  2007
Run Code Online (Sandbox Code Playgroud)

我想插入行来完成数据集,例如德克萨斯州 2001 年、2002 年、2003 年、... 2007 年以及 2009 年和 2010 年的零。同样,除了 2004 年之外,亚利桑那州的所有年份都为零。加利福尼亚也是如此。

我怎样才能做到这一点?

r dataframe

5
推荐指数
1
解决办法
1246
查看次数

mysql中的条件计数

我有一个user_login包含两行的表,userId 和 tstamp(用户 ID 和登录时间戳)。

计算登录次数很简单:

SELECT userId, COUNT(*) as logins FROM user_login GROUP BY userId;
Run Code Online (Sandbox Code Playgroud)

计算某个日期(例如 2018 年 1 月 1 日)之前的登录次数也很简单:

SELECT userId
     , COUNT(*) as loginsBeforeJan1 
  FROM user_login 
 WHERE tstamp < '2018-01-01' 
 GROUP 
    BY userId;
Run Code Online (Sandbox Code Playgroud)

如何在一张表中同时显示两个结果?我试过

SELECT userId
     , COUNT(*) as logins
     , COUNT(IF(tstamp < '2018-01-01',1,0)) loginsBeforeJan1 
  FROM user_login 
 GROUP 
    BY userId;
Run Code Online (Sandbox Code Playgroud)

但登录和登录之前一月 1 是相同的。

如何修改查询以产生我想要的结果?

mysql

4
推荐指数
1
解决办法
2713
查看次数

R ggplot 在图例项之间添加空格

我有一个 ggplot2 并且正在尝试增加图例项之间的间距。

下面的代码产生下面的图:

library(tidyverse)
library(ggplot2)
year <- 2005:2015
variablea <- 1000:1010
variableb <- 1010:1020
df = data.frame(year, variablea, variableb)

df %>% gather(variable, value, -year) %>% 
  ggplot(aes(x = year, y = value, colour = variable, linetype = variable)) + 
  geom_line() +
  theme(
    legend.key=element_blank()
    ,legend.text=element_text(size=12)
    ,legend.position="bottom"
    ,legend.title=element_blank()
    ,panel.background = element_rect(fill = "transparent") # bg of the panel
    ,plot.background = element_rect(fill = "transparent") # bg of the plot
  ) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

然而,底部的图例项目之间的差距太近了,不舒服。

我试图从其他问题中调整解决方案,但它们不起作用。

例如,+ guides(fill=guide_legend(keywidth=0.1, keyheight=0.1, default.unit="inch"))按照有没有办法更改 ggplot2 中图例项之间的间距中的建议添加?不起作用,因为它是一个折线图,所以这些线只是扩展以填充额外的空间。我也尝试了链接问题中建议的第二种解决方案,但它似乎没有改变(目前我正在使用+ …

r ggplot2

3
推荐指数
1
解决办法
5746
查看次数

按组计算标准偏差,不包括 R 中的当前观察

计算 R 数据帧中每个组的平均值很容易。如果要排除当前观察,几乎同样容易

在计算标准偏差时,有什么简单的方法可以排除当前的观察结果?

例如,当我有这张桌子时

data.frame(country = c(rep("A",3), rep("B",3)), weight = c(10,11,12,20,25,30))
Run Code Online (Sandbox Code Playgroud)

,我需要下表:

data.frame(country = c(rep("A",3), rep("B",3)), weight = c(10,11,12,20,25,30), standarddeviation = c(sd(c(11,12)), sd(c(10,12)), sd(c(10,11)), sd(c(25,30)), sd(c(20,30)), sd(c(20,25))))
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
421
查看次数

熊猫:按组设置差异

我有一个非常大的数据集,其中包含每个月每个团队的成员。我想找到每个团队的增删改查。因为我的数据集非常大,所以我尝试尽可能多地使用内置函数。

我的数据集如下所示:

  month team    members
0   0   A   X, Y, Z
1   1   A   X, Y
2   2   A   W, X, Y
3   0   B   D, E
4   1   B   D, E, F
5   2   B   F
Run Code Online (Sandbox Code Playgroud)

它由以下代码生成:

num_months = 3
num_teams = 2
obs = num_months*num_teams

df = pd.DataFrame({"month": [i % num_months for i in range(obs)],
                  "team": ['AB'[i // num_months] for i in range(obs)],
                   "members": ["X, Y, Z", "X, Y", "W, X, Y", "D, E", "D, E, F", "F"]}) …
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
115
查看次数

基于函数创建新列

我有一个 Excel 表格,其中包含美国每个县每个行业的就业人数。

它看起来像这样:

County   Industry  Employees
a        1         49
a        2         1
b        1         4
b        2         19
...
Run Code Online (Sandbox Code Playgroud)

我想计算每个县就业的Herfindahl-Hirschman 指数(HHI)。我正在使用 R。给定一些数字,计算 HHI 很容易:

hhi <- function(x) {
  # calculate sum
  total <- sum(x)
  
  # calculate share
  share <- x*100/total
  
  # add
  return(sum(share^2))
  
}
Run Code Online (Sandbox Code Playgroud)

因此,例如,县 1 的 HHI 为 9608 (= 98^2 + 2^2),县 2 的 HHI 为 7127。

但是,如何使用该县的 HHI 创建一个新列?

r

0
推荐指数
1
解决办法
1278
查看次数

标签 统计

r ×6

ggplot2 ×2

data.table ×1

dataframe ×1

mysql ×1

pandas ×1

python ×1