我正在尝试使用RPostgreSQL和R v2.14.2将表读入R.
我的RPostgreSQL版本列为0.3-2,已于2012年5月16日下载.
我的DBI版本列为0.2-5,已于2012年5月16日下载.
我可以打开数据库,并列出表格.我要打开的表格显然存在,但是,当我尝试阅读它时,我收到一条错误消息.我不确定错误是在我的代码中还是在数据库的设置方式中.
library(RPostgreSQL)
# Loading required package: DBI
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host = 'freda.freda.com', dbname = 'test', user = 'fredak', password = 'xxxx')
dbListTables(con)
# [1] "chemistry”
# [2] "ecog”
# [3] "hematology"
dbExistsTable(con, "ecog")
# [1] FALSE
MyTable <- dbReadTable(con, "ecog")
# Error in postgresqlExecStatement(conn, statement, ...) :
# RS-DBI driver: (could not Retrieve the result : ERROR: relation "ecog" does not exist
# LINE 1: SELECT * from "ecog"
# ^
# …
Run Code Online (Sandbox Code Playgroud) 我试图从xlsb工作簿中读取数据框的范围.我可以用xlsx
R中的包来做这个吗?如果没有,有没有人知道这样做的方法?
假设我有一个这样的系列:
\n\nu = pandas.Series([\'foo\', \'bar\'])\n
Run Code Online (Sandbox Code Playgroud)\n\n我想执行一个简单的正则表达式替换。
\n\n我应该赞成u.replace(\'o+\', \'\', regex = True)
还是u.str.replace(\'o+\', \'\')
?
我从未观察到任何性能差异,并且查看文档,Series.replace
似乎比Series.str.replace
. 那么后者存在的理由是什么?
我需要使用辅助分组变量执行基本group_by
/ mutate
操作.例如:
df <- data.frame(
u = c(0, 0, 1, 0, 1),
v = c(8, 4, 2, 3, 5)
)
df %>%
group_by(tmp = cumsum(u)) %>%
mutate(w = cumprod(v)) %>%
ungroup %>%
select(-tmp)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果df
恰好已经包含一个名为tmp
I 的列,我将失去它.
当然,我可以选择一个非常奇特的名字,而不是tmp
减少碰撞的可能性(或者我甚strrep("z", max(nchar(names(df))) + 1)
至可以选择一些确定的东西),但我更愿意有一个更清洁的解决方案.
换句话说,我正在寻找dplyr
相当于这一data.table
行:
setDT(df)[, w := cumprod(v), by = cumsum(u)]
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种解决方案,如何在更大的集合中找到尽可能接近目标数字的数字子集.例如,我有一组值:
c(55.14, 26.22, 76.69, 37.77, 32.7, 48.71, 7.59, 21.37, 33.54, 3.95, 16.41,
20.56, 24.74, 26.5, 4.72, 32.99, 130.15, 27.27, 20.56, 41.21, 13, 16.41, 88.25,
1.95, 68.2, 34.3, 51.75, 8.93, 8.38, 30.45, 34.89, 42.91, 19.42, 13.62, 9.73,
20.86, 21.5, 37.46, 14.4, 26.61, 55.31, 24.03)
Run Code Online (Sandbox Code Playgroud)
我的目标是1262.2.
如何在全集中找到最小化我的目标1262.2与子集之和之间差异的值的子集?
我正在努力将几个 Berkeley Earth netCDF 文件转换为 CSV 或其他表格格式。我意识到以前曾提出过类似的问题,但我无法应用我遇到的任何解决方案。
例如,这个数据集。
ncdump
从 netCDF 实用程序中似乎不会生成实际的 CSV 文件。我找不到任何关于如何执行此操作的说明。pandas
数据帧中xarray.to_dataframe()
,但我的笔记本无法分配所需的内存。In [1]: import xarray as xr
In [2]: import pandas as pd
In [3]: nc = xr.open_dataset('Complete_TAVG_Daily_EqualArea.nc')
In [4]: nc
Out[4]:
<xarray.Dataset>
Dimensions: (map_points: 5498, time: 50769)
Dimensions without coordinates: map_points, time
Data variables:
longitude (map_points) float32 ...
latitude (map_points) float32 ...
date_number (time) float64 ...
year (time) float64 ...
month (time) float64 ...
day (time) float64 ... …
Run Code Online (Sandbox Code Playgroud) 假设我在R工作区中创建了一个函数列表,同一组函数也在R文件中,之后source()
,源函数对象应该与我创建的列表中的相应函数相同,但事实并非如此.
例:
fR文件包含 f <- function(x) x^2
.
在R控制台:
lst <- list(f=function(x) x^2)
source("f.R")
> ls()
[1] "f" "lst"
> identical(f,lst$f)
[1] FALSE
> str(f)
function (x)
- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 6 1 20 6 20 1 1
.. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x1b2fd60>
> str(lst$f)
function (x)
- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 16 1 30 16 30 1 1
.. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x1bb4b50>
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
> identical(f,lst$f, …
Run Code Online (Sandbox Code Playgroud) 我有一个 R 数据集,其中包含按时间的观察结果。对于每个主题,我最多有 4 行,一个 ID 变量、一个时间变量和一个名为 X 的变量,该变量是数字变量(但也可以是分类变量)。我希望按 ID 计算每行相对于基线的变化。到目前为止,我都是在 SAS 中完成此操作,这是我的 SAS 代码:
data want;
retain baseline;
set have;
if (first.ID) then baseline = .;
if (first.ID) then baseline = X;
else baseline = baseline;
by ID;
Change = X-baseline;
run;
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在 R 中执行此操作?先感谢您。
数据集示例(在SAS中,我不知道如何在R中做到这一点)。
data have;
input ID, Time, X;
datalines;
1 1 5
1 2 6
1 3 8
1 4 9
2 1 2
2 2 2
2 3 7
2 4 0
3 1 …
Run Code Online (Sandbox Code Playgroud) v <- c(a = 5, b = 6)
str(v)
# Named num [1:2] 5 6
# - attr(*, "names")= chr [1:2] "a" "b"
Run Code Online (Sandbox Code Playgroud)
现在我们设置另一个属性:
attr(v, "color") <- "blue"
str(v)
# atomic [1:2] 5 6
# - attr(*, "color")= chr "blue"
Run Code Online (Sandbox Code Playgroud)
为什么这些名字不再列在输出中str
?
为什么atomic
?我同意这v
是原子的,但我希望str
更精确并指出它v
是数字的.
我正在寻找一个 R 命令来列出 PostgreSQL 服务器中的可用数据库。我在 R 中使用 RPostgreSQL 包。
我知道如何连接到服务器,但我唯一需要知道的是如何列出可用数据库的名称。
r ×8
pandas ×2
postgresql ×2
python ×2
rpostgresql ×2
algorithm ×1
data.table ×1
dplyr ×1
excel ×1
netcdf ×1
replace ×1
sas ×1
xlsb ×1