我创建和评估调用expand.grid使用 eval(parse(...)).
简而言之:
len <- 36
Text <- paste("pos <- expand.grid(",
paste(rep("c(TRUE,FALSE)", len), collapse=","), ")", sep="")
eval(parse(text = Text))
Run Code Online (Sandbox Code Playgroud)
给我
Error in rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
invalid 'times' value
In addition: Warning message:
In rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
NAs introduced by coercion
Run Code Online (Sandbox Code Playgroud)
而不是变量len中TRUE/ 的组合数.FALSEpos
我忽略了一些简单的事情,或者可能不是......?
我在Python中复制一些R代码.
我绊倒了R's pretty().
所有我需要的是pretty(x),其中x一些数字.
粗略地说,函数"计算漂亮的断点"作为几个"圆"值的序列.我不确定是否有Python等价物,而且我对Google没有太多运气.
编辑:更具体地说,这是他帮助页面中的描述条目pretty:
描述:计算一个约为n + 1个等间距"圆"值的序列,它覆盖x中值的范围.选择这些值使得它们是10的幂的1,2或5倍.
我查看R是pretty.default()为了看看R究竟在做什么,但它最终会使用.Internal()- 这通常会导致黑暗R魔法.我以为在潜入之前我会问一下.
有谁知道Python是否有与R相当的东西pretty()?
如果我有一个R脚本:
#! /usr/bin/env Rscript
args <- commandArgs(TRUE)
t <- read.table(args[2], header = TRUE)
print(t$args[1])
q(status = 0)
Run Code Online (Sandbox Code Playgroud)
我使用TSV文件"example-table.tsv":
"a" "b"
1 3
2 2
3 1
Run Code Online (Sandbox Code Playgroud)
...使用Bash命令:./example.R a example-table.tsv...(当然,使R脚本可执行后)
为什么要t$args[1]回来NULL?我如何让这个例子返回我在脚本参数中指定的正确的data.frame列?
谢谢你的帮助!
我意识到这可能是也可能不是一个更好的编程问题,而不是Cross Validated ......?
可以说我有一个数组foo,在R中有维度== c(150, 40, 30).现在,如果我:
bar <- apply(foo, 3, rbind)
Run Code Online (Sandbox Code Playgroud)
dim(bar)现在c(6000, 30).
什么是颠倒此过程,并从去最优雅,最通用的方法bar,以foo使它们是相同的?
问题不在于维度是正确的,而是在相同的顺序中获取数据,在其受尊重的原始维度内.
感谢您抽出宝贵时间,我期待您的回复.
PS对于那些认为这是一个更大问题的一部分的人来说,它是,而且,不,我还不能使用plyr.
我有一个矩阵,可以很容易地在R中用image()显示为图像.问题在于该矩阵的定向方式:原点位于矩阵的左下角.因此,当矩阵用image()函数绘制时,一些轴向后出现(我正在使用大的空间气候数据).
当使用Python的matplotlib中的imshow()函数时,我能够通过origin = 'lower'该函数传递该选项.R是否有类似的选项或功能可以轻松执行我需要的转换?我无法想象我是唯一有这个问题的人.
我需要将单位数字(例如c(1, 2, 3, 45))的向量转换为每个项目的长度为2的字符向量,并且在实际数字之前填充零(例如c("01", "02", "03", "45"),
我可以发誓我之前已经在R中做过一些聪明的功能,但我不能为我的生活找到它或记住它是什么......我不认为它是format(),但我可能会感到惊讶.
TL; DR:
我需要什么功能来转换它:
c(1, 2, 3, 45)
Run Code Online (Sandbox Code Playgroud)
对此:
c("01", "02", "03", "45")
Run Code Online (Sandbox Code Playgroud)
?
谢谢,
让我说我有一个愚蠢的文本文件与内容:
Year Recon Observed
1505 162.38 23
1506 46.14 -9999
1507 147.49 -9999
Run Code Online (Sandbox Code Playgroud)
-9999 用于表示缺失值(不要问).
所以,我应该能够将其读入一个Numpy数组:
import numpy as np
x = np.genfromtxt("file.txt", dtype = None, names = True, missing_values = -9999)
Run Code Online (Sandbox Code Playgroud)
让我所有的小朋友-9999变成numpy.nan.但是,我得到:
>>> x
array([(1409, 112.38, 23), (1410, 56.14, -9999), (1411, 145.49, -9999)],
dtype=[('Year', '<i8'), ('Recon', '<f8'), ('Observed', '<i8')])
Run Code Online (Sandbox Code Playgroud)
... 那是不对的...
我错过了什么吗?