我有一个二进制数组,我想将它转换为整数列表,其中每个int是数组的一行.
例如:
from numpy import *
a = array([[1, 1, 0, 0], [0, 1, 0, 0], [0, 1, 1, 1], [1, 1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)
我想转换a为[12, 4, 7, 15].
可能重复:
具有多个输出的功能
这似乎是一个简单的问题,但我无法弄清楚,而且我所看过的R手册也没有运气。我想找到dim(x)的,但我想分配dim(x)[1]给a和dim(x)[2]给b在一行。
我尝试了[a b] <- dim(x)和c(a, b) <- dim(x),但都没有成功。有没有一种方法可以做到这一点?看起来很简单,应该很容易处理。
我正在尝试编写 HTTP POST 请求,但我需要首先将数据转换为二进制格式。这可能是一个简单的问题,但我发现 R 连接确实令人困惑,而且我一直很难找到一个好的资源来以我理解的方式解释它们。
举个例子,假设我想编码一个整数(8 字节),然后编码一个数字(4 字节)。这是我尝试过的代码:
myint <- as.integer(1339700942)
mydouble <- 1.2
obj <- file(open='w+b') #I've tried textConnection too, but no good
w.int <- writeBin(myint, obj, size=8, endian='big')
w.double <- writeBin(mydouble, obj, size=4, endian='big')
Run Code Online (Sandbox Code Playgroud)
这允许我打开连接,但它只写了NULL. writeBin在这种情况下使用连接的正确方法是什么?
我正在编写一个包含 S4 类的包,并且我已经为该类编写了as.POSIXct方法as.POSIXlt。我已经编写了文档,一切看起来都很好,除了我想引用as.POSIXct文档中的方法as.POSIXlt,反之亦然。我尝试过\S4method{coerce}{abc, POSIXct}(from, to)(其中“abc”是 S4 类),但这只应该放在该\usage部分中,这不是我想要的位置。有没有办法做到这一点?我觉得很奇怪,这是不允许的。
我意识到可以组合这些 .rd 文件并避免此问题,但我正在尝试尽可能多地了解 R 中的类和包,因此无论如何这对我很感兴趣。
以下是其中一个 .Rd 文件的框架:
\name{as.POSIXct-methods}
\docType{methods}
\alias{as.POSIXct-methods}
\alias{as.POSIXct,ANY-method}
\alias{as.POSIXct,abc-method}
\title{\code{abc} Method for Function \code{as.POSIXct}}
\description{
\code{as.POSIXct} method to coerce timestamps in \code{abc} objects into
\code{POSIXct} format.
}
\section{Methods}{
\describe{
~~description here~~
\item{\code{signature(x = "ANY")}}{
default implementation (from base)
}
\item{\code{signature(x = "abc")}}{
implementation for \code{\link{abc}} objects.
~~more description of function~~
See \code{\linkS4class{abc}} for more about abc objects. …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 ggplot2 创建一个热图,但我注意到当我绘制它时,它似乎将矩阵向左旋转 90 度。这很奇怪,使用coord_flip()和t()不起作用,因为他们将其旋转到左侧,而不是右侧(因此,他们没有进行校正,而是创建了一个旋转 180 度的热图)。是否有任何选择或技巧可以防止这种情况发生?这是相关的代码:
#this is needed to run custHeat
zeroInterval <- function(mat, colors){
#modified version of findInterval such that zero is given its own category
#This function takes intervals as left exclusive, right inclusive.
#This is mostly so that intervals consisting of a single value will still be represented.
intervalMat <- matrix(0, nrow=nrow(mat), ncol=ncol(mat))
j <- 1
for(i in 1:(length(colors) - 1)){
if(colors[i] != colors[i+1]){
intervalMat[mat>colors[i] & mat<=colors[i+1]] <- j
j <- …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的类创建一个方法,该方法继承自data.frame.我本来希望只是从data.frame继承'show'方法,但我也可以编写自己的方法.我将我的类和'show'方法定义如下:
setClass("SCvec", representation(auth = "character",
dev = "character",
sensor = "character",
channel = "character",
starttime = "character",
endtime = "character"),
contains="data.frame")
setMethod("show", signature(x="SCvec"), function(x) print(x))
Run Code Online (Sandbox Code Playgroud)
当我输入showR控制台时,它会输出:
从包"方法"定义的"show"的standardGeneric
function (object)
standardGeneric("show")
<bytecode: 0x0396bee8>
<environment: 0x0393ab60>
Methods may be defined for arguments: object
Use showMethods("show") for currently available ones.
(This generic function excludes non-simple inheritance; see ?setIs)
Run Code Online (Sandbox Code Playgroud)
所以看起来我不需要自己使用StandardGeneric()将它变成泛型.但是当我运行我的setMethod("show", signature(x="SCvec"), function(x) print(x))线路时,我得到了错误
Error in match.call(definition, call, expand.dots) :
unused argument(s) (x = c("SCvec", ""))
Run Code Online (Sandbox Code Playgroud)
我已经定义了这个方法,就像我定义任何其他方法一样.为什么这个方法定义不起作用?'show'与其他通用函数不同吗?
我有一个类似于圆形POSIX日期(POSIXct)和基本R功能的问题,但我希望始终将日期从第二天的午夜(00:00:00)开始.
基本上,我想要一个等效ceiling于POSIX格式日期的函数.与相关问题一样,我正在编写自己的包,并且我已经有几个包依赖项,所以我不想添加更多.在基地R有一个简单的方法吗?
我一直在阅读关于Go中常量的这篇文章,我试图理解它们是如何在内存中存储和使用的.您可以在Go中对非常大的常量执行操作,只要结果适合内存,您就可以将结果强制转换为类型.例如,10正如您所期望的那样打印此代码:
const Huge = 1e1000
fmt.Println(Huge / 1e999)
Run Code Online (Sandbox Code Playgroud)
这是如何工作的?在某些时候,Go必须存储1e1000并1e999在内存中,以便对它们执行操作.那么常量如何存储,以及Go如何对它们进行算术运算?
我正在尝试使用Windows构建自己的包.我安装我需要的一切,以及运行R CMD build mypackage和R CMD INSTALL mypackage看起来运行良好.但是当我运行build命令时,我收到来自cygwin的警告:
cygwin warning:
MS-DOS style path detected: C:/Documents and Settings/e_sander/My Documents/mypackage_1.0.tar.gz
Preferred POSIX equivalent is: /cygdrive/c/Documents and Settings/e_sander/My Documents/mypackage_1.0.tar.gz
CYGWIN environment variable option "nodosfilewarning"turns off this warning. Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Run Code Online (Sandbox Code Playgroud)
我确实去了推荐的网站,但我对cygwin或linux了解不多,所以我不确定我有什么需要做的.我意识到使用MS-DOS样式路径已被弃用,不推荐在cygwin中使用,但我不知道如何更改它,因为我正在运行Windows,这就是我需要的路径.我也没有发现我的包有任何问题,至少当我把它安装到我的电脑上时(虽然我没有使用过tarball,但我打开它,一切看起来都很好).所以这就是我想弄清楚的:
离开路径会以任何方式影响我的包裹吗?
如果是这样,它怎么会对我的包裹产生不利影响?