小编Noa*_*oss的帖子

如何连接stdin和一个字符串?

如何将stdin连接到一个字符串,像这样?

echo "input" | COMMAND "string"
Run Code Online (Sandbox Code Playgroud)

得到

inputstring
Run Code Online (Sandbox Code Playgroud)

bash

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

控制点边框厚度在ggplot中

当使用ggplot时,我可以设置shape为21-25来获取具有internal(fill)和border(col)颜色的独立设置的形状,如下所示:

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,我无法弄清楚如何控制形状边框的厚度,无论是绝对设置还是美学映射.我注意到,如果我设置一个lwd值,它会覆盖size美学:

ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何控制边框厚度?

r border point thickness ggplot2

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

删除点以最大化最短的最近邻居距离

如果我在2D空间中有一组N个点,由它们位置的向量X和Y定义.什么是有效的算法

  1. 选择要删除的固定数量(M)点,以便最大化剩余点之间的最短最近邻距离.
  2. 移除最小数量的点,以使剩余点之间的最短最近邻距离大于固定距离(D).

按点按最短的最近邻距离进行排序并删除具有最小值的点不会给出正确的答案,因为您删除了两个紧密对的点,而您可能只需要删除这些对中的一个点.

对于我的情况,我通常处理1,000-10,000点,我可以删除50-90%的积分.

algorithm nearest-neighbor

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

当可能的输出已知时加速`strsplit`

我有一个带有因子列的大型数据框,我需要通过用分隔符分割因子名称来划分为三个因子列.这是我目前的方法,这是一个非常慢的大数据框架(有时数百万行):

data <- readRDS("data.rds")
data.df <- reshape2:::melt.array(data)
head(data.df)
##  Time Location    Class Replicate Population
##1    1        1 LIDE.1.S         1 0.03859605
##2    2        1 LIDE.1.S         1 0.03852957
##3    3        1 LIDE.1.S         1 0.03846853
##4    4        1 LIDE.1.S         1 0.03841260
##5    5        1 LIDE.1.S         1 0.03836147
##6    6        1 LIDE.1.S         1 0.03831485

Rprof("str.out")
cl <- which(names(data.df)=="Class")
Classes <- do.call(rbind, strsplit(as.character(data.df$Class), "\\."))
colnames(Classes) <- c("Species", "SizeClass", "Infected")
data.df <- cbind(data.df[,1:(cl-1)],Classes,data.df[(cl+1):(ncol(data.df))])
Rprof(NULL)

head(data.df)
##  Time Location Species SizeClass Infected Replicate Population
##1    1        1 …
Run Code Online (Sandbox Code Playgroud)

performance r strsplit stringr reshape2

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

如何从`data`目录中的脚本引用R包的`inst`目录中的文件?

我的包中包含.csv文件中的原始数据,但我希望使用放在data/目录中的R脚本来处理它们.我已将原始数据文件放入inst/extdata.

data_locs = c(file.path("..", "inst", "extdata"),
              file.path("..", "extdata"),
              file.path("extdata"),
              file.path("inst", "extdata"))

data_loc = data_locs[file.exists(data_locs)]

files = file.path(data_loc, 
                  list.files(data_loc, pattern=".*\\.csv"))

datalist = lapply(pubtime_files, utils::read.csv)

data = do.call(rbind, datalist)

rm(datalist, files, data_loc, data_locs)
Run Code Online (Sandbox Code Playgroud)

我使用倍数,data_locs因为roxygenizing时使用的工作目录与构建包时不同,但即使这样,list.files也找不到任何文件,我得到:

==> R CMD INSTALL --no-multiarch --with-keep.source PACKAGE

* installing to library ‘/Users/noamross/Library/R/3.0/library’
* installing *source* package ‘PACKAGE’ ...
** R
** data
*** moving datasets to lazyload DB
Error in datalist[[1]] : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

如何extdata …

r package

5
推荐指数
0
解决办法
743
查看次数

将具有2列的数据帧转换为仅一列

我有一个数据帧如下:

gous <- structure(list(V1 = c(0, 28.44), V2 = c(1, 28.44), V3 = c(2, 
                                                                  28.44), V4 = c(3, 28.39), V5 = c(4, 28.22), V6 = c(5, 27.72), 
                       V7 = c(6, 24.56), V8 = c(7, 18.78), V9 = c(8, 18.5), V10 = c(9, 
                                                                                    18.56), V11 = c(10, 18.5), V12 = c(11, 18.72)), .Names = c("V1", 
                                                                                                                                               "V2", "V3", "V4", "V5", "V6", "V7", "V8", "V9", "V10", "V11", 
                                                                                                                                               "V12"), class = "data.frame", row.names = c(NA, -2L))
Run Code Online (Sandbox Code Playgroud)

数据如下:

> gous
     V1    V2    V3    V4    V5 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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