小编r2e*_*ans的帖子

“file.exists(pythonPath) 中的错误:文件名转换问题 - 名称太长”是什么意思?意思是?

我卸载并重新安装了 R 和 RStudio。我安装了 R v.4.2.2 和 RStudio 2022.12.0+353。当我启动新的 R 会话或重新启动会话时,我会在控制台中收到带有错误的消息。
截屏:
截图在这里。

当我运行代码时,我的降价似乎没有产生问题,但我想知道这个错误意味着什么。我只使用R编程语言,不使用Python。

r rstudio

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

ggplot2::coord_cartesian 在方面

coord_cartesian不允许设置每个面的坐标,并且使用其他范围限制往往会在特定的极端产生一条直线。由于我们有广泛变化的 y 范围,我们不能在所有方面设置相同的限制;在绘图之前限制数据与geom_line/ geom_path( /sf/answers/1912385051/ )不太友好,因为插入数据以到达边缘然后插入NAs 以打破上线。(最终,获得所需结果的唯一方法就是这样做,这对于其他数据来说可能有点繁重。)

https://gist.github.com/burchill/d780d3e8663ad15bcbda7869394a348a 中建议了一种解决方法,它以

test_data %>%
  ggplot(aes(x=Nsubjects, y = Odds, color=EffectSize)) +
  facet_wrap(DataType ~ ExpType, labeller = label_both, scales="free") +
  geom_line(size=2) +
  geom_ribbon(aes(ymax=Upper, ymin=Lower, fill=EffectSize, color=NULL), alpha=0.2)
Run Code Online (Sandbox Code Playgroud)

ggplot2 的一个方面需要更好的限制

在 之前的版本中ggplot2,该要点定义coord_panel_ranges并能够控制每个方面的坐标。两个右侧面应缩小到 1-6(ish) y 轴,以便爆炸置信区间离开屏幕,并允许面主要关注数据的“正常范围”。(注意:这个test_data和这个 vis 不是我的,它取自 gist。虽然我的需求有些相似,但我认为最好留在 gist 的数据和代码的范围内。)

不幸的是,这对我来说现在失败了ggplot2-3.3.0。与最近丢失的 相关的初始错误ggplot2::scale_range,我试图通过对 burchill 代码(使用其他ggplot2:::内部函数)的这种改编来减轻这些错误:

UniquePanelCoords <- ggplot2::ggproto(
  "UniquePanelCoords", ggplot2::CoordCartesian,
  
  num_of_panels = 1,
  panel_counter = 1,
  panel_ranges = …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 ggproto

12
推荐指数
2
解决办法
453
查看次数

已经在R的浏览器中添加跟踪/断点

某些调试器允许您在调试器中动态添加断点.R中的功能是否可行?一个例子:

quux <- function(..)
{ # line 1
  "line 2"
  "line 3"
  "line 4"
  "line 5"
  "line 6"
}

trace("quux", tracer = browser, at = 3)
# [1] "quux"
quux()
# Tracing quux() step 3 
# Called from: eval(expr, envir, enclos)
# Browse[1]> 
# debug: [1] "line 3"
Run Code Online (Sandbox Code Playgroud)

在调试时,我相信我想在代码中超前.想象一下这个函数有几百行代码,我宁愿不介绍它们.

我希望能够做到这一点,并从当前行跳到下一个有趣的行,但不幸的是它只是继续执行该功能.

# Browse[2]>
trace("quux", tracer = browser, at = 5)
# [1] "quux"
# Browse[2]>
c    
# [1] "line 6"
# # (out of the debugger)
Run Code Online (Sandbox Code Playgroud)

trace在调试器中的调用只是将断点添加到原始(全局)函数,如图所示,如果我立即再次调用该函数:

quux()
# Tracing …
Run Code Online (Sandbox Code Playgroud)

debugging trace r

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

通过R建立到另一台计算机的SSH隧道以访问postgreSQL表

作为我的一个项目的R工作流程的一部分,我从位于远程服务器上的postgreSQL表中加载数据.

我的代码看起来像这样(匿名凭证).

我首先打开一个到终端远程服务器的ssh连接.

ssh -p Port -L LocalPort:IP:RemotePort servername"
Run Code Online (Sandbox Code Playgroud)

然后我连接到R中的postgres数据库.

# Load the RPostgreSQL package
library("RPostgreSQL")

# Create a connection
Driver <- dbDriver("PostgreSQL") # Establish database driver
Connection <- dbConnect(Driver, dbname = "DBName", host = "localhost", port = LocalPort, user = "User")

# Download the data
Data<-dbGetQuery(Connection,"SELECT * FROM remote_postgres_table")
Run Code Online (Sandbox Code Playgroud)

这种方法工作正常,我可以毫无问题地下载数据.

但是,我想在R中而不是在终端中执行第一步 - 即创建ssh连接.这是我尝试这样做的,伴随着错误.

# Open the ssh connection in R
system("ssh -T -p Port -L LocalPort:IP:RemotePort servername")

# Load the RPostgreSQL package
library("RPostgreSQL")

# Create a connection …
Run Code Online (Sandbox Code Playgroud)

ssh r

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

data.table分组列在"J"中的长度为1

在我学习的过程中data.table,我发现了一种我无法优雅地解决的问题.

lm预先:公式的荒谬性是显而易见的,我试图确定这种细微差别是否可以在data.table生态系统中使用关键字或特殊运算符轻松解决.

library(data.table)
mt <- as.data.table(mtcars)
mt[, list(model = list(lm(mpg ~ disp))), by = "cyl"]
#    cyl model
# 1:   6  <lm>
# 2:   4  <lm>
# 3:   8  <lm>
mt[, list(model = list(lm(mpg ~ disp + cyl))), by = "cyl"]
# Error in model.frame.default(formula = mpg ~ disp + cyl, drop.unused.levels = TRUE) : 
#   variable lengths differ (found for 'cyl')
Run Code Online (Sandbox Code Playgroud)

这是因为在块内部,cyl是一个长度为1的向量,而不是像其余值一样的列:

mt[, list(model = { browser(); list(lm(mpg ~ cyl+disp)); …
Run Code Online (Sandbox Code Playgroud)

grouping r data.table

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

如何查找特定于 ODBC 驱动程序的参数

有没有办法以编程方式发现 ODBC 连接的命名参数?

例如,使用“ODBC Driver 17 for SQL Server”,ODBC 数据源管理器(在 Windows 中)允许使用“登录 ID”和“密码”进行身份验证,但是在以编程方式连接时,我们需要分别使用uid=pwd=。这两个配置点在配置文档(例如https://db.rstudio.com/databases/microsoft-sql-server/)中明确列出,但驱动程序支持的其他几个配置选项较少或不- 记录。

(对于 SQL Server,还有更多文档,包括https://docs.microsoft.com/en-us/sql/connect/odbc/windows/driver-aware-connection-pooling-in-the-odbc-driver-for -sql-server?view=sql-server-ver15,列出了其他几个参数(尽管不是它们可能的值)。这适用于这个驱动程序,但由于此页面尚未针对驱动程序 17 更新,我们必须假设所有选项不变。)

可以通过编程方式了解哪些驱动程序可用,以及哪些预定义数据源可用:

odbc::odbcListDrivers()
#                             name        attribute value
# ...truncated...
# 33 ODBC Driver 17 for SQL Server       UsageCount     1
# 34 ODBC Driver 17 for SQL Server         APILevel     2
# 35 ODBC Driver 17 for SQL Server ConnectFunctions   YYY
# 36 ODBC Driver 17 for SQL Server        CPTimeout    60 …
Run Code Online (Sandbox Code Playgroud)

odbc r dbi nanodbc

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

使用函数pivot_longer() 时如何排除多于一列?

我试图排除所有 3 列

billboard %>% 
  pivot_longer(-artist,-track,-date.entered , names_to = "Week Spent", values_to ="freq",values_drop_na = TRUE)
Run Code Online (Sandbox Code Playgroud)

r tidyr

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

如何将 tibble 导出到 .csv

我使用包“rfm”进行了 rfm 分析。结果在 tibble 中,我似乎无法弄清楚如何将其导出到 .csv。我尝试了下面的参数,但它导出了一个空白文件。

> dim(bmdata4RFM)
[1] 1182580       3
> str(bmdata4RFM)
'data.frame':   1182580 obs. of  3 variables:
 $ customer_ID: num  0 0 0 0 0 0 0 0 0 0 ...
 $ sales_date : Factor w/ 366 levels "1/1/2018 0:00:00",..: 267 275 286 297 300 301 302 303 304 305 ...
 $ sales      : num  101541 110543 60932 75472 43588 ...
> head(bmdata4RFM,5)
  customer_ID        sales_date     sales
1           0 6/30/2017 0:00:00 101540.70
2           0  7/1/2017 0:00:00 110543.35
3           0 …
Run Code Online (Sandbox Code Playgroud)

r

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

ggplot2:强制空的二级类别

我正试图为多级分组箱图保留"空白空间".

set.seed(42)
n <- 100
dat <- data.frame(x=runif(n),
                  cat1=sample(letters[1:4], size=n, replace=TRUE),
                  cat2=sample(LETTERS[1:3], size=n, replace=TRUE))
ggplot(dat, aes(cat1, x)) + geom_boxplot(aes(fill=cat2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我强制其中一个组为空:

dat <- subset(dat, ! (cat1 == 'b' & cat2 == 'B'))
table(dat$cat1, dat$cat2)
##    
##      A  B  C
##   a  9  9  7
##   b  8  0  5
##   c 13 11  6
##   d 11 10  5
ggplot(dat, aes(cat1, x)) + geom_boxplot(aes(fill=cat2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第二组"b"现在扩展到填补空间.我想要的是:

在此输入图像描述

SO 9818835(强制出现一个空的级别)在顶级工作正常,但我无法弄清楚如何使它适用于第二级别的类别.在scale_x_discrete(...),我尝试设置:

  • breaks=letters[1:4]
  • breaks=LETTERS[1:3]
  • breaks=list(letters[1:4], LETTERS[1:3]) (刺伤)
  • breaks=NULL
  • breaks=func在哪里func <- function(x, …

r ggplot2 boxplot

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

突然 ggplot 崩溃了 R 工作室,有什么建议吗?

突然 ggplot 开始导致错误并冻结我的基本系统重新启动给了我以下信息:“R 会话错误”,“由于意外崩溃,上一个 R 会话异常终止”

我正在使用 RStudio 服务器

为了解决这个问题,我创建了一个新的 VM(windows 10 上的 ubuntu 20.04)升级到 R studio 版本 1.4.1106 我已经升级到 R 4.1 并安装了新的包(tidyverse),这对工作至关重要,但仍然得到一个碰撞。

下面是一个非常简单的测试脚本,失败并出现上面提到的错误 如前所述,这是全新安装

测试脚本

library(tidyverse)
data(iris)
ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
  geom_point()
Run Code Online (Sandbox Code Playgroud)

r ggplot2 rstudio-server

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

标签 统计

r ×10

ggplot2 ×3

boxplot ×1

data.table ×1

dbi ×1

debugging ×1

facet ×1

ggproto ×1

grouping ×1

nanodbc ×1

odbc ×1

rstudio ×1

rstudio-server ×1

ssh ×1

tidyr ×1

trace ×1