小编raj*_*jay的帖子

当有许多列时,使用readr :: read_csv()导入数据时覆盖列类型

我正在尝试使用R中的readr :: read_csv读取csv文件.我导入的csv文件大约有150列,我只是包含示例的前几列.我期待覆盖默认类型(我执行read_csv的日期)的第二列到字符或其他日期格式.

GIS Join Match Code Data File Year  State Name  State Code  County Name County   Code   Area Name   Persons: Total
G0100010    2008-2012   Alabama 1   Autauga County  1   Autauga County, Alabama 54590

df <- data.frame("GIS Join Match Code"="G0100010", "Data File" = "2008-2012", "State" = "Alabama", "County" = "Autauga County", "Population" = 54590)
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用readr :: read_csv时,似乎我可能必须在覆盖col_types时使用所有变量(请参阅下面的错误).这需要指定单独覆盖所有150列(?)..问题是:有没有办法指定覆盖特定列的col_type或命名的对象列表?在我的情况下,它将覆盖"数据文件年"列.

我知道任何省略的列都会被自动解析,这对我的分析很好.我认为它变得更复杂,因为列名在我下载的文件中有空格(例如,"数据文件年","国家代码")等.

tempdata <- read_csv(df, col_types = "cc")
Error: You have 135 column names, but 2 columns
Run Code Online (Sandbox Code Playgroud)

我想,如果可能的话,其他选项只是跳过一起阅读第二列?

csv file-io r dataframe dplyr

31
推荐指数
2
解决办法
2万
查看次数

dplyr left_join小于,大于条件

这个问题在某种程度上与问题有关,问题是在非平凡的标准上有效地合并两个数据框,检查日期是否在r中的两个日期之间.我在这里发布的请求该功能是否存在: GitHub问题

我希望加入两个数据帧dplyr::left_join().我用来加入的条件是小于,大于ie,<=>.是否dplyr::left_join()支持这种功能?或者只=在这些键之间使用操作符.这很容易从SQL运行(假设我在数据库中有数据帧)

这是一个MWE:我有一个公司年(fdata)的两个数据集,而第二个是每五年发生一次的调查数据.因此,对于fdata两个调查年份之间的所有年份,我加入相应的调查年度数据.

id <- c(1,1,1,1,
        2,2,2,2,2,2,
        3,3,3,3,3,3,
        5,5,5,5,
        8,8,8,8,
        13,13,13)

fyear <- c(1998,1999,2000,2001,1998,1999,2000,2001,2002,2003,
       1998,1999,2000,2001,2002,2003,1998,1999,2000,2001,
       1998,1999,2000,2001,1998,1999,2000)

byear <- c(1990,1995,2000,2005)
eyear <- c(1995,2000,2005,2010)
val <- c(3,1,5,6)

sdata <- tbl_df(data.frame(byear, eyear, val))

fdata <- tbl_df(data.frame(id, fyear))

test1 <- left_join(fdata, sdata, by = c("fyear" >= "byear","fyear" < "eyear"))
Run Code Online (Sandbox Code Playgroud)

我明白了

Error: cannot join on columns 'TRUE' x 'TRUE': index out of bounds 
Run Code Online (Sandbox Code Playgroud)

除非left_join能处理这个条件,但我的语法遗漏了什么?

sql postgresql r left-join dplyr

17
推荐指数
4
解决办法
2万
查看次数

使用dplyr访问sql表/查询时计算行数

计算使用 dplyr 访问 sql 表的行数的有效方法是什么。MWE 在下面使用 SQLite,但我使用 PostgreSQL 并且有同样的问题。基本上 dim() 不是很一致。我用了

dim()
Run Code Online (Sandbox Code Playgroud)

这适用于数据库中的模式(第一种情况),但当我从相同模式的 SQL 查询创建 tbl 时(第二种情况)不是很一致。我的行数以百万计,或者即使只有 1000 行,我也能看到这一点。我得到 NA 或 ??。有什么遗漏的吗?

#MWE
test_db <- src_sqlite("test_db.sqlite3", create = T)
library(nycflights13)
flights_sqlite <- copy_to(test_db, flights, temporary = FALSE, indexes = list(
c("year", "month", "day"), "carrier", "tailnum"))

flights_postgres <- tbl(test_db, "flights")
Run Code Online (Sandbox Code Playgroud)

第一种情况(来自直接模式的表)

flights_postgres

 > flights_postgres
 Source: postgres 9.3.5 []
 From: flights [336,776 x 16]

   year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight    origin dest air_time distance hour minute
  1  2013 …
Run Code Online (Sandbox Code Playgroud)

mysql sqlite postgresql r dplyr

7
推荐指数
1
解决办法
2318
查看次数

R dplyr ::重命名并使用字符串变量进行选择

我试图在我的数据帧中选择一个变量子集,并重命名新数据帧中的变量.我有大量的变量需要重命名.我在用

dplyr::select
dplyr::select_
Run Code Online (Sandbox Code Playgroud)

由于我要重命名的变量数量,我在想是否应该使用字符串变量来重命名,但不确定它是否可能?使用字符串可以帮助我管理newname oldname映射.这是一个例子

dplyr::select
library(dplyr)
library(nycflights13) 
set.seed(123)
data <- sample_n(flights, 3)

select(data,yr=year,mon=month,deptime=dep_time)
Run Code Online (Sandbox Code Playgroud)

我怎么能在字符串中传递this的参数,即newvariable = oldvariable参数然后使用

dplyr::select_

col_vector <- c("year", "month", "dep_time")
select_(data, .dots = col_vector)
Run Code Online (Sandbox Code Playgroud)

我想到的字符串是:

rename_vector <- c("yr=year","mon=month","deptime=dep_time")
Run Code Online (Sandbox Code Playgroud)

任何建议都会非常有帮助.

string r rename dplyr

6
推荐指数
2
解决办法
5013
查看次数

Stata tabstat更改订单/排序?

tabstat在Stata中使用,并使用estpostesttab输出到LaTeX.我有

tabstat
Run Code Online (Sandbox Code Playgroud)

按组显示统计信息.例如,

tabstat assets, by(industry) missing statistics(count mean sd p25 p50 p75) 
Run Code Online (Sandbox Code Playgroud)

我的问题是tabstat(或其他Stata命令)是否有办法显示按平均值排序的输出,以便那些具有更高平均值的类别将位于顶部.默认情况下,Stata按industry我使用时的字母顺序显示tabstat.

statistics latex summary stata output

4
推荐指数
2
解决办法
5060
查看次数

使用 dplyr 对多列求和时忽略 NA

我正在对多列求和,有些列有 NA。我在用

 dplyr::mutate
Run Code Online (Sandbox Code Playgroud)

然后写出列的算术和以获得总和。但是列有 NA,我想将它们视为零。我能够让它与 rowSums 一起工作(见下文),但现在使用 mutate。使用 mutate 可以使其更具可读性,但也可以让我减去列。示例如下。

require(dplyr)
data(iris)
iris <- tbl_df(iris)
iris[2,3] <- NA
iris <- mutate(iris, sum = Sepal.Length + Petal.Length)
Run Code Online (Sandbox Code Playgroud)

如何确保 Petal.Length 中的 NA 在上述表达式中被处理为零?我知道使用 rowSums 我可以执行以下操作:

iris$sum <- rowSums(DF[,c("Sepal.Length","Petal.Length")], na.rm = T)
Run Code Online (Sandbox Code Playgroud)

但是使用 mutate 甚至可以更容易地设置 diff = Sepal.Length - Petal.Length。使用 mutate 完成此操作的建议方法是什么?

请注意,该帖子类似于以下 stackoverflow 帖子。

使用 dplyr 对多列求和

减去多列忽略 NA

r multiple-columns dataframe dplyr

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

在R地图中使用FIPS代码对县进行着色

我正在寻找一种在R中的美国地图上给县添加阴影的方法。我有一个数字/字符县FIPS代码列表,可以将其输入作为参数。我只需要突出显示这些县-所以只需要阴影它们,就没有对应于这些县的值或变体。我试图抬头

 library(choroplethr)
 library(maps)
Run Code Online (Sandbox Code Playgroud)

county_choropleth(df_pop_county)

head(df_pop_county)
    region  value
 1   1001  54590
 2   1003 183226
 3   1005  27469
 4   1007  22769
 5   1009  57466
 6   1011  10779
Run Code Online (Sandbox Code Playgroud)

但是这些需要区域,价值对。例如,上面的fip代码和填充。有没有一种方法可以仅使用fipscode数据框来调用county_choropleth函数而不必使用值。这样,我就可以用一种颜色编码我的fips。使用Choroplethr在R中完成此任务的有效方法是什么?

maps r fips rmaps choroplethr

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

Stata 固定效应超出样本预测

我正在使用 Stata 运行固定效应模型,然后执行样本外预测。但似乎

xtreg 
Run Code Online (Sandbox Code Playgroud)

其次是

predict yhat, xbu 
Run Code Online (Sandbox Code Playgroud)

不预测样本外以及固定效应。有没有办法通过包含固定效应将 xtreg 用于样本外?插图:

webuse nlswork
xtset idcode year
regress ln_wage age if year <= 80
predict temp1

xtreg ln_wage age if year <= 80, fe
predict temp2, xbu
Run Code Online (Sandbox Code Playgroud)

就我而言,我需要预测 year = 81 的值。并且 temp2 为空的年数 > 80。阅读 xtreg 和 areg 的手册,似乎不可能进行样本外预测,尤其是对于 xbu——其中包括固定效应预测。可以理解,如果我使用年份固定效果没有意义,但如果我只是使用idcode应该可以吗?任何建议将不胜感激。或者关于如何获得解决方案的任何建议?

它似乎只针对 <= 2000 年的所有年份生成。也就是说,我只能生成样本中的预测。

predict stata panel-data

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