我想选择列并根据我保存在单独数据框中的列的名称重命名它们。
这是原始数据集:
df <- tribble(
~year, ~country, ~series1, ~series2,
2003, "USA", 8, 5,
2004, "USA", 9, 6,
2005, "USA", 11, 7,
2006, "USA", 10, 8
)
Run Code Online (Sandbox Code Playgroud)
我想选择并重命名两列,并且想像这样指定:
specs <- tribble(
~old_name, ~new_name,
"country", "region",
"series1", "gdp_growth"
)
Run Code Online (Sandbox Code Playgroud)
我想要这个结果:
expected_df <- tribble(
~region, ~gdp_growth,
"USA", 8,
"USA", 9,
"USA", 11,
"USA", 10
)
Run Code Online (Sandbox Code Playgroud)
这不起作用:
df %>%
select(specs$new_name = specs$old_name)
Run Code Online (Sandbox Code Playgroud)
Error: unexpected '=' in: "df %>% select(specs$new_name ="
我试图以一种令人赏心悦目的方式制作几个wordcloud的子图/方面.
问题:
wordcloud正确地组合-outputsggplot2允许刻面但产生不令人满意的结果(丑陋的定位)我试过两种方法来创建这些wordcloud-subplots.
library(dplyr)
library(janeaustenr)
library(tidytext)
df <- austen_books() %>%
unnest_tokens(word, text) %>%
anti_join(stop_words, by = "word") %>%
group_by(book) %>%
count(word) %>%
top_n(100, n)
Run Code Online (Sandbox Code Playgroud)
wordcloud包和基础R:library(wordcloud)
par(mfrow = c(2,2))
png("jane_austen_wordclouds.png")
df %>%
filter(book == "Sense & Sensibility") %>%
with(wordcloud(word, n))
df %>%
filter(book == "Pride & Prejudice") %>%
with(wordcloud(word, n))
df %>%
filter(book == "Mansfield Park") %>%
with(wordcloud(word, n))
df %>%
filter(book == "Emma") %>%
with(wordcloud(word, n))
title( "Jane …Run Code Online (Sandbox Code Playgroud) 我想绘制一个geom_ribbon()使带的颜色以变量为条件的位置。
例子:
library(dplyr)
library(ggplot2)
df <- tribble(
~year, ~lower, ~upper, ~type,
2001, 150, 222, "A",
2002, 53, 64, "A",
2003, 31, 64, "B",
2004, 10, 18, "B",
2005, 30, 49, "B",
2006, 37, 43, "A",
2007, 54, 77, "B",
2008, 58, 89, "A",
2009, 50, 111, "A",
2010, 40, 81, "A",
2011, 49, 63, "A"
)
ggplot(df, aes(x = year)) +
geom_ribbon(aes(ymin = lower, ymax = upper, fill = type))
Run Code Online (Sandbox Code Playgroud)
这会创建:
这会创建两个单独的波段,但我只想更改一个组合波段的颜色。
本周我在我的新工作计算机上重新安装了 R 和我最喜欢的软件包。我可以安装我需要的大部分内容,但是我在安装zoo包时遇到了问题。
安装
install.packages("zoo")最初对我不起作用。不幸的是,我不再有初始错误消息。原因是我设法像这样安装它:
install.packages("zoo", dependencies=TRUE, repos='http://cran.rstudio.com/')
加载包
这是我的错误:
> library("zoo")
Fehler: Paket ‘zoo’ ist für 'arch=x64' nicht installiert
This probably has to do with my machine's 64 bit architecture and the corresponding R installation.
[1]: http://zoo.r-forge.r-project.org/
Run Code Online (Sandbox Code Playgroud)
细节:
如果我现在输入install.packages("zoo"),我会得到:
Installing package into ‘C:/Users/Me/OneDrive - Company/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
versuche URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/zoo_1.8-8.zip'
Content type 'application/zip' length 1094522 bytes (1.0 MB)
downloaded 1.0 MB
package ‘zoo’ successfully unpacked and MD5 sums checked
Warning in install.packages …Run Code Online (Sandbox Code Playgroud) 我想为我的数据的不同子组创建自相关的 ggplot 图。
使用该forecast包,我设法为整个示例生成一个 ggplot 图,如下所示:
library(tidyverse)
library(forecast)
df <- data.frame(val = runif(100),
key = c(rep('a', 50), key = rep('b', 50)))
ggAcf(df$val)
Run Code Online (Sandbox Code Playgroud)
其产生:
但现在我正在尝试以下方法来生成方面,但它不起作用:
ggplot(df) +
ggAcf(aes(val)) +
facet_wrap(~key)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个这样的字符串列表:
mystr <- c("16.142.8",
"52.135.1",
"40.114.4",
"83.068.8",
"83.456.3",
"55.181.5",
"76.870.2",
"96.910.2",
"17.171.9",
"49.617.4",
"38.176.1",
"50.717.7",
"19.919.6")
Run Code Online (Sandbox Code Playgroud)
我知道第一个点.只是一个千位分隔符,而第二个是十进制运算符。
我想将字符串转换为数字,因此第一个应该变成16142.8,第二个应该变成52135.1,依此类推。
我怀疑它可能是用正则表达式完成的,但我不确定如何做。有任何想法吗?
我正在按数据集中的组估计回归模型,然后我希望为所有组添加正确的拟合值。
我正在尝试以下操作:
library(dplyr)
library(modelr)
df <- tribble(
~year, ~country, ~value,
2001, "France", 55,
2002, "France", 53,
2003, "France", 31,
2004, "France", 10,
2005, "France", 30,
2006, "France", 37,
2007, "France", 54,
2008, "France", 58,
2009, "France", 50,
2010, "France", 40,
2011, "France", 49,
2001, "USA", 55,
2002, "USA", 53,
2003, "USA", 64,
2004, "USA", 40,
2005, "USA", 30,
2006, "USA", 39,
2007, "USA", 55,
2008, "USA", 53,
2009, "USA", 71,
2010, "USA", 44,
2011, "USA", 40
)
rmod <- df …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个 bash 脚本来访问 SSRN 上的期刊概述页面。
我正在尝试使用curl它,它在其他网页上适用于我,但error code: 1020如果我尝试运行以下代码,它会返回给我:
curl https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1925128
Run Code Online (Sandbox Code Playgroud)
我认为这可能与 URL 中的问号有关,但我让它可以与包含问号的其他页面一起使用。
它可能与页面允许执行的操作有关。不过,我也可以使用 R 的rvest包访问该页面,所以我认为它通常也可以使用 bash 工作。
当我总结一个数据框并将其重新加入原始数据框时,则在使用列名时遇到了麻烦。
这是原始数据框:
import pandas as pd
d = {'col1': ["a", "a", "b", "a", "b", "a"], 'col2': [0, 4, 3, -5, 3, 4]}
df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)
现在,我计算一些统计数据并将其合并回:
group_summary = df.groupby('col1', as_index = False).agg({'col2': ['mean', 'count']})
df = pd.merge(df, group_summary, on = 'col1')
Run Code Online (Sandbox Code Playgroud)
数据框现在具有一些奇怪的列名:
df
Out:
col1 col2 (col2, mean) (col2, count)
0 a 0 0.75 4
1 a 4 0.75 4
2 a -5 0.75 4
3 a 4 0.75 4
4 b 3 3.00 2
5 b 3 3.00 2 …Run Code Online (Sandbox Code Playgroud) 如上一个问题所述,我正在绘制德国邮政编码。最精细的级别是 5 位数字,例如 10117。我想绘制在两位数字级别上定义的边界,同时还保持邮政编码的着色粒度。
这里又是我的代码的第一部分,用于对邮政编码进行着色:
# for loading our data
library(raster)
library(readr)
library(readxl)
library(sf)
library(dplyr)
# for datasets
library(maps)
library(spData)
# for plotting
library(grid)
library(tmap)
library(viridis)
Run Code Online (Sandbox Code Playgroud)
获取德国的形状文件(链接)。在德国,邮政编码称为 Postleitzahlen (PLZ)。
germany <- read_sf("data/OSM_PLZ.shp")
Run Code Online (Sandbox Code Playgroud)
将 PLZ 分为任意组以进行绘图。
germany <- germany %>%
mutate(plz_groups = case_when(
substr(plz, 1, 1) == "1" ~ "Group A",
substr(plz, 2, 2) == "2" ~ "Group B",
TRUE ~ "Group X" # rest
))
Run Code Online (Sandbox Code Playgroud)
由PLZ进行绘图填充:
tm_shape(germany) +
tm_fill(col = "plz_groups")
Run Code Online (Sandbox Code Playgroud)
我想划定的界限如下:
我在另一篇文章的答案的基础上设法绘制了德国的国家边界。但为此我使用了不同的形状文件。我还没有找到符合我正在寻找的级别的现有形状文件。
我可以使用已有的粒度 shapefile 并以某种方式聚合到 2 …