小编Joh*_*ith的帖子

如何更改数据框的名称

我有一个经常出现的情况,我在一组R代码的顶部设置了一个值,该代码用于对一个或多个数据帧进行子集化.像这样的东西:

city_code <- "202"
Run Code Online (Sandbox Code Playgroud)

在整个过程结束时,我想将结果保存在一个适当命名的数据框中,比如说,基于将"city_code"附加到公共存根.

city_results <- paste("city_stats", city_code, sep = "")
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法弄清楚如何将结果数据框重命名为'city_results'的值.有很多关于如何重命名数据框列的信息,但没有关于如何重命名数据框本身的信息.基于提出的答案,这里有一个澄清:

谢谢,@迈克明智.有助于学习哈德利的高级R,手头有一个具体的问题.

library(dplyr)
gear_code <- 4
gear_subset <- paste("mtcars_", gear_code, sep = "")
mtcars_subset <- mtcars %>% filter(gear == gear_code)
head(mtcars_subset)
write.csv(mtcars_subset, file = paste(gear_subset, ".csv", sep = ""))
Run Code Online (Sandbox Code Playgroud)

这让我可以将子集写入适当命名的csv文件.但是,您的建议有点可行,但我不能,例如,使用新名称引用data.frame:

assign(gear_subset, mtcars_subset)
head(gear_subset)
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

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

如何诊断“无法创建套接字”?

当我在帮助搜索框中输入字符串时,RStudio 突然给了我这个错误:

starting httpd help server ...Error in tools::startDynamicHelp() : unable to create socket
Run Code Online (Sandbox Code Playgroud)

当我在控制台上输入以下内容时,我得到了同样的错误:

> ?grep
Run Code Online (Sandbox Code Playgroud)

我已经更新到 RStudio 的当前版本并且正在运行 R 的当前版本。我在 R 本身中尝试了相同的命令,没有问题。

也许巧合的是,当我尝试让 RStudio 更新软件包时,我收到以下消息:

Warning: unable to access index for repository http://cran.rstudio.com/bin/windows/contrib/3.1
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/3.1
Run Code Online (Sandbox Code Playgroud)

以下是 RStudio 在诊断报告文件中提供的内容:

2014 年 7 月 19 日 17:13:51 [rsession-John Smith] 错误 r 错误 4(R 代码执行错误)[errormsg=工具中的错误::startDynamicHelp():无法创建套接字|||];发生在:核心::错误 r::exec::::evaluateExpressionsUnsafe(SEXPREC*, SEXPREC*, SEXPREC**, r::sexp::Protect*) C:\Users\Administrator\rstudio\src\cpp\r \RExec.cpp:145; 记录自:core::Error session::modules::help::initialize() C:\Users\Administrator\rstudio\src\cpp\session\modules\SessionHelp.cpp:894

我已经卸载了R 和 RStudio,然后重新安装了问题并没有消失。现在,当我启动 RStudio 时,我得到:

Error in tools::startDynamicHelp() : …
Run Code Online (Sandbox Code Playgroud)

r rstudio

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

如何在不同的MySQL表中指定具有不同名称的连接变量

我需要连接两个表,其中我想要使用的公共列ID在每个表中具有不同的名称.这两个表有一个"false"公共列名,当dplyr采用默认值并加入列"id"时,该名称不起作用.

以下是此问题涉及的一些代码

library(dplyr)
library(RMySQL)

SDB <- src_mysql(host = "localhost", user = "foo", dbname = "bar", password = getPassword())
# Then reference a tbl within that src
administrators <- tbl(SDB, "administrators")
members <- tbl(SDB, "members")
Run Code Online (Sandbox Code Playgroud)

这里有3次尝试 - 都失败了 - 传递成员方的公共列是"id"的信息,而在管理员方面,它是"idmember":

sqlq  <- semi_join(members,administrators, by=c("id","idmember"))
sqlq  <- inner_join(members,administrators, by= "id.x = idmember.y")
sqlq  <- semi_join(members,administrators, by.x = id, by.y = idmember)
Run Code Online (Sandbox Code Playgroud)

这是我得到的各种错误消息的示例:

mysqlExecStatement(conn,statement,...)出错:RS-DBI驱动程序:(无法运行语句:'where子句'中的未知列'_LEFT.idmember')

我在那里看到的例子涉及R侧的数据表和数据帧.我的问题是关于dplyr如何将"by"语句发送到SQL引擎.

mysql r rmysql dplyr

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

否定 dplyr 过滤器中的函数参数

我希望这个函数能够对数据框进行子集化并列出不在子集中的行。下面是一个例子:

library(tidyverse)
library(stringr)
arrests <- USArrests %>% rownames_to_column()

list_arrests <- function(criteria) {
  arrests %>% filter(str_detect(rowname, criteria))
}

list_arrests("North|South")
list_arrests("New")
Run Code Online (Sandbox Code Playgroud)

我如何重写该函数,以便它列出那些不是的行 "North|South|New"

r dataframe dplyr

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

标签 统计

r ×4

dplyr ×3

dataframe ×2

mysql ×1

rmysql ×1

rstudio ×1