小编Sca*_*bee的帖子

为什么我不能读取我的表,虽然它是由dbListTables列出的?

我正在尝试使用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)

postgresql r rpostgresql

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

如何阅读xlsb文件?

我试图从xlsb工作簿中读取数据框的范围.我可以用xlsxR中的包来做这个吗?如果没有,有没有人知道这样做的方法?

excel r xlsb

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

我应该使用 Series.replace 还是 Series.str.replace?

假设我有一个这样的系列:

\n\n
u = pandas.Series([\'foo\', \'bar\'])\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想执行一个简单的正则表达式替换。

\n\n

我应该赞成u.replace(\'o+\', \'\', regex = True)还是u.str.replace(\'o+\', \'\')

\n\n

我从未观察到任何性能差异,并且查看文档,Series.replace似乎比Series.str.replace. 那么后者存在的理由是什么?

\n

python replace pandas

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

如何在不创建分组变量的情况下进行group_by?

我需要使用辅助分组变量执行基本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恰好已经包含一个名为tmpI 的列,我将失去它.

当然,我可以选择一个非常奇特的名字,而不是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)

r dplyr data.table

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

如何在集合中找到最大化与目标值的接近程度的数字组合

我正在寻找一种解决方案,如何在更大的集合中找到尽可能接近目标数字的数字子集.例如,我有一组值:

   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与子集之和之间差异的值的子集?

algorithm r

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

将 netCDF 文件转换为 csv

我正在努力将几个 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)

python netcdf pandas

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

R中函数对象的区别

假设我在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

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

在 R 中计算相对于基线的变化

我有一个 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)

r sas

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

为什么str()不显示名称?

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

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

使用 RPostgreSQL 列出数据库

我正在寻找一个 R 命令来列出 PostgreSQL 服务器中的可用数据库。我在 R 中使用 RPostgreSQL 包。

我知道如何连接到服务器,但我唯一需要知道的是如何列出可用数据库的名称。

postgresql r rpostgresql

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

标签 统计

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