小编Dou*_*Fir的帖子

根据条件过滤数据框中的数据

我是R的新手,无法掌握这个概念.假设我有一个名为"places"的表格,其中包含3个列 - 城市,人口和夏季平均温度

假设我想"过滤" - 产生一个新的表格对象,其中人口少于100万,夏季平均温度大于70度.

在我使用的任何其他程序中,这将非常简单,但是我做了一些研究,我正在努力让自己陷入更大的困惑.鉴于R的目的和它的作用,这必须是非常简单的东西.

我如何将上述条件应用于表格?步骤是什么?根据我的理解,我不能轻易地根据他们的名字选择表格标题,这样会很好(例如WHERE city <1,000,000)

r subset

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

SQL内部连接一对多

假设我有两个表,表1和表2.表1与表2有一对多的关系.

如果表1是我的基表(SELECT something FROM table1)与表2的内连接,那么当从表2中选择任何字段时,将返回表2中的哪些值?

  • 第一个值返回了吗?和excel的vlookup功能一样?
  • 加入的最后一个值?

例如

Table1
     Account ID |      email      
         1      |   abc@def.com
         2      |   cats@dogs.com
         3      |   ex@example.com

Table 2
Subscription ID | Account ID  |       Email       |      Created
    100         |     1       |    abc@def.com    |    2014-01-01
    102         |     2       |    cats@dogs.com  |    2014-02-02
    103         |     1       |    abc@def.com    |    2014-03-03
Run Code Online (Sandbox Code Playgroud)

因此,如果我运行查询以根据订阅选择帐户的创建日期,我可以运行SELECT min(Created)以获取第一个.

但是什么是默认行为?如果我的左表是表1加入表2的帐户ID,我选择创建的字段,将返回?2014-01-01或2014-03-03?

sql join

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

删除tmp文件

我读了这篇关于如何删除tmp文件的帖子.该帖子的解决方案是:

do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
Run Code Online (Sandbox Code Playgroud)

对于Windows机器,目录"C:/ Temp"可能很好.因为我在linux上,我不确定我的tmp文件目录是什么,所以我这样做:

tmp <- tempfile()
Run Code Online (Sandbox Code Playgroud)

返回:"/ tmp/RtmpNS80no/file147c37e54e8e"

所以,我试过这个:

do.call(file.remove, list(list.files("tmp", full.names = TRUE)))
Run Code Online (Sandbox Code Playgroud)

这返回"逻辑(0)"所以可能不起作用?

如何删除所有tmp文件?

r temporary-files

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

是否可以在“创建物化视图为”形式的物化视图上创建新索引?

(show server_version; 11.5)
Run Code Online (Sandbox Code Playgroud)

我有一个物化视图:

drop materialized view if exists reporting.ecom_channel;
create materialized view reporting.ecom_channel  as


select 
    s.date,
    s.user_type,
    s.channel_grouping,
    s.device_category,
    sum(s.sessions) as sessions,
    count(distinct s.dimension2) as daily_users,
    sum(s.transactions) as transactions,
    sum(s.transaction_revenue) as revenue
from ecom.sessions s
group by 1,2,3,4
Run Code Online (Sandbox Code Playgroud)

该查询中没有 id 字段。对于我的常规表,这些表“传统上”指定为'create table tablename .... id serial, field1 int, etc'

由于我根据查询结果创建了物化视图,而不是在创建期间定义每个字段名称,因此如何添加 id?

我这样做的原因是因为当我尝试时:

refresh materialized view concurrently reporting.ecom_channel;
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

错误:无法同时刷新物化视图“reporting.channel”。提示:在物化视图的一列或多列上创建不带 WHERE 子句的唯一索引

如何在上述上下文中添加 ID?和

create materialized view reporting.ecom_channel  as
select 
    s.date,
    s.user_type,
    ...
Run Code Online (Sandbox Code Playgroud)

postgresql

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

在地图循环中使用作为字符串的函数名称?

一些代码:

mymtcars <- mtcars %>% head %>% rownames_to_column('model') %>% group_by(vs) %>% nest
mymtcars
     vs data             
  <dbl> <list>           
1     0 <tibble [3 × 11]>
2     1 <tibble [3 × 11]>
Run Code Online (Sandbox Code Playgroud)

我可以在这个列表列 df 上拟合线性模型,如下所示:

mymtcars %>% 
+   mutate(mod = map(.x = data, ~ lm(.x$mpg ~ .x$cyl)))
# A tibble: 2 x 3
# Groups:   vs [2]
     vs data              mod   
  <dbl> <list>            <list>
1     0 <tibble [3 × 11]> <lm>  
2     1 <tibble [3 × 11]> <lm>  
Run Code Online (Sandbox Code Playgroud)

如果我的函数名称是一个字段怎么办?

mymtcars2 <- mtcars %>% head …
Run Code Online (Sandbox Code Playgroud)

r purrr

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

错误:找不到存储库。致命:无法从远程存储库读取。请确保您拥有正确的访问权限并且存储库存在

昨天我创建了一个 ssh 密钥并克隆了一个用于工作的存储库。进行一些更改后,我尝试推送提交:

git push
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇活跃的 SO 帖子。我的问题仍然存在。我不知道如何找出问题所在,因此将分享我认为相关的所有内容。

在我的笔记本电脑上,我有个人和工作存储库。我的工作工作位于嵌套在~/Documents/Projects/Zen/Projects/. 其他地方例如~/Documents/Projects/Personal/用于个人github。

我的 .gitconfig 看起来像这样:

[user]
    email = 12345+doug@users.noreply.github.com
    name = 12345doug

[includeIf "gitdir:/home/doug/Documents/Projects/Zen/"]
    path = ~/.git-zen
Run Code Online (Sandbox Code Playgroud)

/.git-zen 看起来像这样:

[user]
        email = doug@work.com
        name = doug-work
Run Code Online (Sandbox Code Playgroud)

目前我在一个仓库中:

pwd
/home/doug/Documents/Projects/Zen/Projects/analytics-psql-action
Run Code Online (Sandbox Code Playgroud)

一些提交准备好推送:

~/Documents/Projects/Zen/Projects/analytics-psql-action$ git status
On branch master
Your branch is ahead of 'origin/master' by …
Run Code Online (Sandbox Code Playgroud)

git ssh github

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

来自串联的R项目文件路径

我正在完成一个R教程.我一直在研究一个函数,函数的一个部分是接受一个参数并用它来定义一个查找数据的目录.然后必须加载该数据.

正如以下作品:

getmonitor <- function(id, directory){

csvfile <- function(id) {
    if (id < 10) { 
        paste0(0,0,id,".csv")
    } else if (id < 100) {
        paste0(0,id,".csv")
    } else paste0(id,".csv")
}

foo <- read.csv(csvfile(id))

}
Run Code Online (Sandbox Code Playgroud)

精细.但我现在必须使用"directory"参数来定义必须从中读取csv文件的目录.我在这里尝试了各种各样的事情无济于事.

目前,如果假设数据在工作目录中,则代码可以工作.我需要说"转到名为(目录)的目录,然后读取.csv.

包含所有数据文件的目录称为"specdata",因此目录的参数是"specdata".

我尝试了以下方法:

getmonitor <- function(id, directory){

  csvfile <- function(id) {
      if (id < 10) { 
          paste0(0,0,id,".csv")
      } else if (id < 100) {
          paste0(0,id,".csv")
      } else paste0(id,".csv")
  }

  filepath <- append(directory,"/",csvfile(id))

  foo <- read.csv(filepath)

 }
Run Code Online (Sandbox Code Playgroud)

但后来我收到一条错误消息"错误!之后:无效的参数类型"

我尝试了一些不同的东西,如果我剪切并粘贴所有代码,它可能会比帮助更麻烦.

这样做的逻辑方法是什么?我是否在正确的轨道上追加?如果不是,我还应该起诉什么?我需要获取参数"directory",然后从该目录加载数据.

r function

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

计算一系列csv文件的行数

我正在研究一个R教程并怀疑我必须使用其中一个函数,但我不确定哪个(是的,我研究了它们,但直到我对R术语更加流利,它们都很混乱).

在我的工作目录中有一个文件夹"specdata".Specdata包含数百个名为001.csv - 300.csv的CSV文件.

我正在处理的函数必须计算输入数量的csv文件的总行数.因此,如果函数中的参数是,1:10并且每个文件都有十行,则返回100.

这是我到目前为止所拥有的:

complete <- function(directory,id = 1:332) {
    setpath <- paste("/Users/gcameron/Desktop",directory,sep="/")
    setwd(setpath)
    csvfile <- sprintf("%03d.csv", id)
    file <- read.csv(csvfile)
    nrow(file)
 }
Run Code Online (Sandbox Code Playgroud)

当ID参数是一个数字(例如17)时,这可以工作.但是,如果我输入说10:50作为参数,我收到一个错误:

Error in file(file, "rt") : invalid 'description' argument
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能计算输入ID参数的总行数?

r apply lapply

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

使用终端将SQL数据库导入mysql

我很难做到这一点.

我在终端中创建了一个名为"somedb"的新数据库

CREATE DATABASE somedb
Run Code Online (Sandbox Code Playgroud)

在我的桌面上,我有从phpMyadmin下载的SQL转储:somedb.sql

我试过了:

somedb < /Users/myname/Desktop/somedb.sql
Run Code Online (Sandbox Code Playgroud)

结果:错误1064(42000):您的SQL语法中有错误

mysql -u myname -p -h localhost somedb </Users/myname/Desktop/somedb.sql
Run Code Online (Sandbox Code Playgroud)

结果:错误1064(42000):您的SQL语法有错误;

我是SQL新手(导入此数据库的目的是进行教科书练习)

我已授予自己所有权限,但没有密码.

知道我做错了什么吗?

这是SQL转储文件的顶部:

-- phpMyAdmin SQL Dump
-- version 4.0.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 18, 2013 at 02:22 PM
-- Server version: 5.5.31-30.3
-- PHP Version: 5.2.17

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

-- …
Run Code Online (Sandbox Code Playgroud)

mysql sql terminal import

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

我可以将 --max-concurrent-downloads 作为标志传递吗?

我正在使用较差的互联网连接并尝试拉取和运行图像。

我想一次下载一层,每个文档都尝试添加一个平面 --max-concurrent-downloads ,如下所示:

docker run --rm -p 8787:8787 -e PASSWORD=blah --max-concurrent-downloads=1 rocker/verse
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误:

未知标志:--max-concurrent-downloads 请参阅“docker run --help”。

我尝试打字docker run --help,有趣的是没有看到选项 --max-concurrent-downloads。

我使用的是 Docker Toolbox,因为我使用的是旧 Mac。

在 l 下面这里有一个 --max-concurrent-downloads 选项,但是在我的终端上输入时没有出现 docker run --help

在此处输入图片说明

如何将一次下载 3 个图层的默认设置更改为仅一个?

docker

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

标签 统计

r ×5

sql ×2

apply ×1

docker ×1

function ×1

git ×1

github ×1

import ×1

join ×1

lapply ×1

mysql ×1

postgresql ×1

purrr ×1

ssh ×1

subset ×1

temporary-files ×1

terminal ×1