小编Ric*_*son的帖子

从 R 保存文本的方法比较:writeLines()、cat() 和 sink()

这个问题,将文本行写入 R 中的文件,显示了将输出保存到纯文本文件的三种不同方式。使用问题中的示例,假设我们要创建一个output.txt以此文本命名的文件:

Hello
World
Run Code Online (Sandbox Code Playgroud)

问题的答案显示了三种方法:

  1. 使用writeLines()
Hello
World
Run Code Online (Sandbox Code Playgroud)
  1. 使用sink()
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)
Run Code Online (Sandbox Code Playgroud)
  1. 使用cat()
sink("outfile.txt")
cat("hello")
cat("\n")
cat("world")
sink()
Run Code Online (Sandbox Code Playgroud)

一些答案和评论指出,这cat()会比其他两种方法慢。然而,我的问题是:

  1. 是否存在一种方法比其他方法更好的情况?
  2. 如果一种方法比 R 中的其他两种方法更惯用正确或更快,为什么?

我搜索了所以只找到了链接的答案。我在 SO 上发现了其他为什么问题(例如,为什么处理排序数组比处理未排序数组更快?)所以我认为这个问题是该网站的主题。

r

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

将图形与grid.arrange组合并调整绘图大小和轴标签

我想两者结合起来ggplots使用grid.arrange,只有一个普通的传说.我设法将这两个传说与一个小技巧结合起来,但是由于我从第一个图中删除了传说grid.arrange,当然这个传说更广泛.如何将两个绘图区域设置为相同的大小?而且我希望在两个图下方都有一个共同的x轴标签.有可能grid.arrange吗?我知道,之前已经回答了类似的问题,但我仍然是新手,R而且解决方案太复杂,或者我无法将它们与我的数据相匹配.

所以这是我的两个数据集:

testxy
  SN strain     est     low      up
1  A     xy 11.6751 11.1480 12.2021
2  B     xy 11.4211 11.1108 11.7314
3  C     xy  2.6603  2.4291  2.8915
4  D     xy  4.5503  4.2972  4.8034

testyz
  SN strain     est     low      up
5  A     yz 22.1761 21.5136 22.8387
6  C     yz 21.4829 21.0251 21.9408
7  B     yz 19.3294 18.8950 19.7639
8  D     yz 19.9990 19.3934 20.6047
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码.它接近我想要的,但只是关闭:

p1<-ggplot(data=testxy, aes(colour=strain, x=SN, y=est))+
theme(panel.background = element_rect(fill …
Run Code Online (Sandbox Code Playgroud)

axis r legend ggplot2

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

在R中的Boxplot中记录Y轴

我的数据集中有34个变量.我正在尝试为每个变量制作boxplot.我也想使用log Y轴.这是我的R代码:

boxplot(mydata,log ="y")警告信息:在plot.window中(xlim = xlim,ylim = ylim,log = log,yaxs = pars $ yaxs):非限定轴限制[GScale(-inf,3.61878,2, ); 日志= 1]

你能帮我解决一下吗?另外,我需要在这个图中的所有变量名称.谢谢提前!

logging axis r

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

为什么在css或脚本路由中使用"?ver = 2.70"?

为什么有些人写这个:

shop/js/uds-jsonp.js?ver=2.70
Run Code Online (Sandbox Code Playgroud)

代替

shop/js/uds-jsonp.js
Run Code Online (Sandbox Code Playgroud)

我有?ver=2.70或没有检查资源,?ver=2.70我没有看到任何差异.

html javascript css version

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

计算data.table中两行之间的距离

问题摘要:我正在使用Windows 7 PC上的(版本)data.table软件包(版本1.9.5)清理鱼类遥测数据集(即空间坐标随时间变化)R.一些数据点是错误的(例如,遥测设备拾取了回声).我们可以说这些点是错误的,因为鱼比生物可能的距离移动了更远的距离并且作为异常值脱颖而出.实际数据集包含来自30条单独鱼类的超过2,000,000行数据,因此使用了该data.table包.

我正在移除相距太远的点(即,行进的距离大于最大距离).但是,我需要重新计算在移除点之后在点之间行进的距离,因为2-3个数据点有时会在群集中被错误记录.目前,我有一个for循环来完成工作,但可能远非最佳,我知道我可能会错过包中的一些强大工具data.table.

作为技术说明,我的空间尺度足够小,欧几里德距离起作用,我的最大距离标准是生物学合理的.

我寻求帮助的地方:我已经查看了SO并找到了几个有用的答案,但没有一个完全符合我的问题.具体而言,所有其他答案仅将一列数据与行之间进行比较.

  1. 答案使用两行进行比较data.table,但仅查看一个变量.

  2. 这个答案看起来很有前途和用途Reduce,但我无法弄清楚如何使用Reduce两列.

  3. 这个答案使用了索引功能data.table,但我无法弄清楚如何将它与距离函数一起使用.

  4. 最后,这个答案证明了它的roll功能data.table.但是,我无法弄清楚如何使用这个函数的两个变量.

这是我的MVCE:

library(data.table)
## Create dummy data.table
dt <- data.table(fish = 1,
                 time = 1:6,
                 easting = c(1, 2, 10, 11, 3, 4),
                 northing = c(1, 2, 10, 11, 3, 4))
dt[ , dist := 0]

maxDist = 5 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

掩码数组:如何更改表示掩码值的符号

我想更改代表打印的掩码数组中掩码值的符号。我得到的是:

>>> print ma.array([[1, 0,0,1],[1,0,1,0]],mask=[[0,0,0,1],[1,1,0,1]])
[[1 0 0 --]
 [-- -- 1 --]]
Run Code Online (Sandbox Code Playgroud)

我会比较喜欢:

[[1 0 0 -]
 [- - 1 -]]
Run Code Online (Sandbox Code Playgroud)

我尝试设置numpy.ma.masked_print_option,但不起作用:

>>> numpy.ma.masked_print_options = '-'
>>> print ma.array([[1, 0,0,1],[1,0,1,0]],mask=[[0,0,0,1],[1,1,0,1]])
[[1 0 0 --]
 [-- -- 1 --]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

使用 pandas.DataFrame.resample 最频繁的值

我正在使用时间戳索引pandas.DataFrame.resample重新采样分组的 Pandas dataframe

在其中一列中,我想重新采样,以便选择最常见的值。目前,我只成功使用 NumPy 函数,如np.maxnp.sum等。

#generate test dataframe
data = np.random.randint(0,10,(366,2))
index = pd.date_range(start=pd.Timestamp('1-Dec-2012'), periods=366, unit='D')
test = pd.DataFrame(data, index=index)

#generate group array
group =  np.random.randint(0,2,(366,))

#define how dictionary for resample
how_dict = {0: np.max, 1: np.min}

#perform grouping and resample
test.groupby(group).resample('48 h',how=how_dict)
Run Code Online (Sandbox Code Playgroud)

前面的代码有效,因为我使用了 NumPy 函数。但是,如果我想按最频繁的值使用重采样,我不确定。我尝试定义一个自定义函数,如

def frequent(x):
    (value, counts) = np.unique(x, return_counts=True)
    return value[counts.argmax()]
Run Code Online (Sandbox Code Playgroud)

但是,如果我现在这样做:

how_dict = {0: np.max, 1: frequent}
Run Code Online (Sandbox Code Playgroud)

我得到一个空的数据框...

df = test.groupby(group).resample('48 h',how=how_dict)
df.shape
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

Mysqldump无法正常工作:"找不到命令"

我必须从命令行导出数据库.我尝试使用这个命令:

mysqldump -u root -p db_name > backup.sql
Run Code Online (Sandbox Code Playgroud)

但它返回此错误:

-bash:mysqldump:找不到命令

在此之后,我也试过了

sudo mysqldump
Run Code Online (Sandbox Code Playgroud)

但错误是一样的.

我刚开始,现在我不是很擅长.如果我必须在目录上工作,请明确,因为我对终端没有信心.

mysql mysqldump

5
推荐指数
2
解决办法
7094
查看次数

你如何使用R找到2列的中位数?

我试图s用列A1和计算数据集的中值向量B1.中值向量是来自两个列的每个观察的中值.

我试图这样做但它不起作用.

median(s[c("A1","B1")])
Run Code Online (Sandbox Code Playgroud)

还有另一种方法吗?

r median

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

R索引数组.如何使用第三维矩阵索引3维数组

我有一个关于索引3个暗淡数组的问题.

说我有一个三维数组

x<- c(1:36)
dim(x) <- c(3,4,3) 
Run Code Online (Sandbox Code Playgroud)

现在我想根据包含所有[i,j]位置的第三维索引的矩阵从该数组中提取值.

y <- c(rep(1,4),rep(2,4),rep(3,4))
dim(y) <- c(3,4)

y
      [,1] [,2] [,3] [,4]
[1,]    1    1    2    3
[2,]    1    2    2    3
[3,]    1    2    3    3
Run Code Online (Sandbox Code Playgroud)

所以结果应该是这样的:

     [,1] [,2] [,3] [,4]
[1,]    1    4   19   34
[2,]    2   17   20   35
[3,]    3   18   33   36
Run Code Online (Sandbox Code Playgroud)

有一些优雅的方式来做到这一点?我知道如何使用两个for循环遍历数组,但这对我的数据来说太慢了.

r multidimensional-array matrix-indexing

3
推荐指数
2
解决办法
996
查看次数