小编xia*_*dai的帖子

R:如何为向量中的每个唯一值分配一个运行计数器?

我遇到过这个问题.我想确定下个100年每个月的第二个星期日的日子.这是我的代码

x <- seq(as.Date("2014-9-01"),as.Date("2014-9-01")+100*365.25,1)

y <- format(x,"%Y%m")

xx <- NULL
for(i in unique(y)) {
  w <- which(y == i)
  xx <- c(xx,x[w[which(weekdays(x[w]) == "Sunday")[2]]])
}

head(xx)
tail(xx)
Run Code Online (Sandbox Code Playgroud)

我已经实现了它,但我不得不使用循环.如何使用矢量化代码更有效地执行此操作?

通常,假设存在具有n个不同值的向量v,如何为每个不同的值分配增加值,对于每个不同的值,从1开始为1.也就是说,假设我从向量开始

v <- c(1,1,1,2,2,2,2,3,4,4)
Run Code Online (Sandbox Code Playgroud)

我想生成一个"运行计数器" v.counter,其中包含v中的唯一值

v.counter <- c(1,2,3,1,2,3,4,1,1,2)
Run Code Online (Sandbox Code Playgroud)

显然我可以写一个循环来做到这一点.但是我如何使用矢量化代码呢?

r

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

朱莉娅:我如何"修复"某个特定版本的软件包?

如何在特定版本中"修复"包?在朱莉娅?

因此,如果包破坏现有代码,我们就不必更新包.

package julia

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

R:有没有办法加快字符串的排序?

我试图对字符串向量进行排序,请参阅下面的MWE

# example R code    
N=1e8; K=100
set.seed(1)
id3 = sample(sprintf("i%07d",1:(N/K)), N, TRUE)
pt = proc.time()
sort(id3)
data.table::timetaken(pt)
Run Code Online (Sandbox Code Playgroud)

并且它在我的电脑上没有完成将近5分钟,所以我取消了它.

我注意到在Julia中,我的笔记本电脑上可以在大约90秒内执行相同的操作

# example Julia cde
const M=100_000_000; const K=100
srand(1)
svec1 = rand(["i"*dec(k,7) for k in 1:M÷K], M)
@time sort(svec1)
Run Code Online (Sandbox Code Playgroud)

sorting r

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

检查一个数据帧中的日期是否在另一个数据帧的日期范围内,并在 true 时返回行

if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, lubridate)

# Example of sample dates - these are to be used to cross check if date exists within the range
Sample.Dates = tibble(
  ID = "ID",
  Round = 1:3,
  Start.Date = dmy(c("03/12/2018","10/12/2018","17/12/2018")),
  End.Date = dmy(c("09/12/2018","16/12/2018","23/12/2018")))

# Reference dates for a particular player - "John". Need to cross check the date against Sample.Dates and attach round, start and end date columns
Ref.Dates = tibble(
  ID= "ID",
  Date = seq.Date(ymd("2018-12-05"), ymd("2018-12-31") ,  by = "day"),
  Player = …
Run Code Online (Sandbox Code Playgroud)

r date between data.table tidyverse

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

Julia: How to execute a system command from Julia code?

I have created a string

x = "ls"
Run Code Online (Sandbox Code Playgroud)

and I wanted to execute x as a string from Julia. How do I do that?

ls is just a contrivded example I actually wanted to execute a more complicated command, so please don't tell me pwd() works.

The actual command might be split c:/data/Performance_All/Performance_2000Q1.txt -n l/3 -d /c/data/Performance_All_split/Performance_2000Q1.txt

julia

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

朱莉娅:如何在函数退出时执行一些代码?例如lik R的`on.exit`?

我有一段代码可以运行,并且我想在函数的出口处执行一些代码,例如关闭连接。

fn(io) = begin
  write(io)
  # do lots of stuff which can fail
  ...
  # want close connection
  on_exit(()->close(io))
end
Run Code Online (Sandbox Code Playgroud)

julia

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

Bash:如何用分隔符分割行并将每个元素打印在新行上?

我有一个 CSV 文件,其标题包含 2000 多列。我希望只读取第一行,然后将其拆分,并在新行中打印每个列名称,以便我可以 grep 来查看列是否存在。我被困住了

head -n 1 file.csv | ### what do do here? ### | grep var_i_want
Run Code Online (Sandbox Code Playgroud)

bash awk sed

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

有没有在不打印R版本...消息的情况下启动R的方法?

我正在CMD ["R", "some_optoins"]docker映像中运行,并且我想禁止R启动消息的打印,例如R version 3.6.1 (2019-07-05),这很长并且会增加日志大小。

有命令行选项可以抑制这种情况吗?

r

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

pandas:如何返回字符串列的字符串长度计数?

说我有一个数据框 df

import pandas as pd
df = pd.DataFrame({"id":["a", "b", "aa", "aaa", "bbb", "a"]})
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想计算列 id字符串长度的计数。

在这个例子中,有 3 个id长度为 1 的字符串,1 个长度为 2 的字符串,2 个长度为 3 的字符串。 所以我想要一个反映这些信息的表

str_length  count
1           3
2           1
3           2
Run Code Online (Sandbox Code Playgroud)

对数百万行执行此操作的最有效方法是什么?

这是我能想到的最好的,但我听说使用apply很慢

str_length  count
1           3
2           1
3           2
Run Code Online (Sandbox Code Playgroud)

这产生了。

   str_length  count
1           1      3
2           2      1
3           3      2
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

如何像在 Windows 上一样在 Linux 上安装 R 包二进制文件?

当我install.packages("somepkg")在 Linux(主要是 Ubuntu)上运行时,安装过程涉及从源代码构建 R 包,这可能很耗时。此外,由于缺少与开发相关的 Linux 软件包,它也很容易失败。

有没有办法像在 Windows 上一样安装已编译的二进制文件?听说可以,但是找不到容易理解的资源。希望通过在这里提问,我会让答案(如果存在)更易于搜索。

linux r

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

标签 统计

r ×5

julia ×3

awk ×1

bash ×1

between ×1

data.table ×1

dataframe ×1

date ×1

linux ×1

package ×1

pandas ×1

python ×1

sed ×1

sorting ×1

tidyverse ×1