我想知道是否有一个功能来清除R中的控制台,特别是RStudio我正在寻找一个我可以在控制台中键入的功能,而不是键盘快捷键.
有人已经在2010年的StackExchange帖子中提供了这样的功能.不幸的是,这取决于RCom包,不能在Mac OS X上运行.
我目前正在尝试在计算群集上运行一些R代码但install.packages由于我的群集上有一些奇怪的防火墙设置而无法运行该功能.由于我只在R代码中使用了一些软件包,所以我希望install.packages通过手动下载和安装软件包来避免使用该软件.
注意:我知道有一种方法可以通过使用R FAQ中描述的HTTP代理来避免此问题.不幸的是,负责我的集群的人没有帮助设置它,所以我不得不考虑这种替代方法.
理想情况下,我想将软件包文件从CRAN下载到我的计算机,然后将这些文件上传到集群并使用R中的相应命令安装它们.此外,我还要确保将软件包安装到我选择的位置,因为我没有在默认R目录中"写"的权限(我相信我可以通过使用该.libPaths函数在R中执行此操作)
最后,我在群集上使用的计算机是Unix x86_64.
我正在寻找一种方法在MATLAB中有效地从矩阵中删除NaN数(即不使用for循环)
我将提供一个简单的例子来说明我想要实现的目标:
说我有一个矩阵M:
3.00 1.00
1.00 3.00
NaN NaN
3.00 3.00
1.00 1.00
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法来改变它
3.00 1.00
1.00 3.00
3.00 3.00
1.00 1.00
Run Code Online (Sandbox Code Playgroud)
我目前正试图通过M(isfinite(M))来做这个,但最终返回一个向量而不是矩阵.有没有让它返回矩阵的技巧?
我目前有一个SQL查询,生成一个大约10M行的表.我想将此表附加到另一列中,该列对于所有10M行具有相同的条目.
作为示例,请考虑以下玩具查询
SELECT PRODUCT_ID, ORDER_QUANTITY
FROM PRODUCT_TABLE
GROUP BY SALES_DAY
Run Code Online (Sandbox Code Playgroud)
并说是产生下表
PRODUCT_ID ORDER_QUANTITY`
1 10
2 12
3 14
Run Code Online (Sandbox Code Playgroud)
如何更改此查询以便生成下表,其中USER_VALUE中的每个条目都是999.
PRODUCT_ID ORDER_QUANTITY USER_VALUE
1 10 999
2 12 999
3 14 999
Run Code Online (Sandbox Code Playgroud)
我意识到这里可能有几个答案......但是我认为知道生成具有最小文件大小的表的方法会有所帮助(我假设这需要事先指定数据类型).
我一直遇到R(3.1.1)和RStudio(0.98.1079)的一些奇怪问题,我怀疑这是因为我升级到Mac OSX 10.10后这些程序不再引用正确的位置.
特别是,我似乎无法找到我知道我已安装在计算机上的软件包,以便使用systemR控制台中的命令运行.也就是说,man pdflatex在终端窗口中运行会生成PDFLATEX的帮助手册.但是,system('man pdflatex')从R控制台运行会产生错误消息No manual entry for pdflatex.
自从我升级到Mac OSX 10.10后,即使我重新安装了R,RStudio和MacTex,问题仍然存在.任何帮助,将不胜感激!
我经常发现自己试图从数值变量+用户提供的范围集创建分类变量.
例如,假设我有一个带有数字变量的data.frame,df$V并且想要创建一个新变量df$VCAT,以便:
df$VCAT= 0如果df$V等于0df$VCAT= 1如果df$V介于0到10之间(即(0,10))df$VCAT= 2 df$V等于10(即[10,10])df$VCAT= 3是df$V10到20之间(即(10,20))df$VCAT= 4 df$V大于或等于20(即[20,Inf])我目前通过以下方式对自己的"评分函数"进行硬编码来做到这一点:
df = data.frame(V = seq(1,100))
df = df %>% mutate(VCAT = (V>0) + (V==10) + 2*(V>10) + (V>=20))
Run Code Online (Sandbox Code Playgroud)
我想知道在R中是否有更简单的hacky方法,最好使用dplyr(这样我可以链接命令).理想情况下,我正在寻找一个可以使用的短函数,mutate它将接收变量V和描述范围的向量,例如buckets.请注意,这里buckets可能没有以最佳方式描述,因为我不清楚如何允许用户自定义范围的端点.
我目前正在尝试在Cython中实现基本的矩阵向量乘法(作为一个更大的项目的一部分,以减少计算),并发现我的代码比大约慢2 倍Numpy.dot.
我想知道是否有一些我错过的导致减速的东西.我正在编写优化的Cython代码,声明变量类型,需要连续的数组,并避免缓存未命中.我甚至尝试将Cython作为包装器并调用本机C代码(见下文).
我想知道:我还能做些什么来加快我的实施速度,因此NumPy可以像这个基本操作一样快速运行?
我正在使用的Cython代码是beow:
import numpy as np
cimport numpy as np
cimport cython
DTYPE = np.float64;
ctypedef np.float64_t DTYPE_T
@cython.boundscheck(False)
@cython.wraparound(False)
@cython.nonecheck(False)
def matrix_vector_multiplication(np.ndarray[DTYPE_T, ndim=2] A, np.ndarray[DTYPE_T, ndim=1] x):
cdef Py_ssize_t i, j
cdef Py_ssize_t N = A.shape[0]
cdef Py_ssize_t D = A.shape[1]
cdef np.ndarray[DTYPE_T, ndim=1] y = np.empty(N, dtype = DTYPE)
cdef DTYPE_T val
for i in range(N):
val = 0.0
for j in range(D):
val += A[i,j] * x[j] …Run Code Online (Sandbox Code Playgroud) 给定一个整数向量,例如:
X = [1 2 3 4 5 1 2]
Run Code Online (Sandbox Code Playgroud)
我想找到一种非常快速的方法来计算具有2个元素的独特组合的数量.
在这种情况下,两个数字组合是:
[1 2] (occurs twice)
[2 3] (occurs once)
[3 4] (occurs once)
[4 5] (occurs once)
[5 1] (occurs once)
Run Code Online (Sandbox Code Playgroud)
按照目前的情况,我目前在MATLAB中这样做如下
X = [1 2 3 4 5 1 2];
N = length(X)
X_max = max(X);
COUNTS = nan(X_max); %store as a X_max x X_max matrix
for i = 1:X_max
first_number_indices = find(X==1)
second_number_indices = first_number_indices + 1;
second_number_indices(second_number_indices>N) = [] %just in case last entry = 1 …Run Code Online (Sandbox Code Playgroud) 我最近发现,它可能有猛砸设置一个变量时变量未设置(如中描述的默认值这个职位).
不幸的是,当默认值是数组时,这似乎不起作用.作为一个例子考虑,
default_value=(0 1 2 3 4)
my_variable=${my_variable:=("${default_value[@]}")}
echo ${my_variable[0]}
(0 a 2 3 4) #returns array :-(
echo ${my_variable[1])
#returns empty
Run Code Online (Sandbox Code Playgroud)
有谁知道这是怎么回事?请注意,更改:=为:-没有帮助.
另一个问题是,我们获得的任何解决方案也应该在my_variable事先已经设置的情况下工作,这样做
my_variable=("a" "b" "c")
default_value=(0 1 2 3 4)
my_variable=${my_variable:=("${default_value[@]}")}
echo ${my_variable[0]}
"a"
echo ${my_variable[1]}
"b"
echo ${my_variable[2]}
"c"
Run Code Online (Sandbox Code Playgroud) 我在尝试安装启用了共享库的 Python 3.8.6 时遇到错误。我在 M1 Macbook Pro 上使用 PyEnv 1.2.23。
特别是,运行:
$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.6
Run Code Online (Sandbox Code Playgroud)
返回错误信息:
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.6.tar.xz...
-> https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz
Installing Python-3.8.6...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 11.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/b7/nnczj7h90wn8ds7ht2ljn2l80000gn/T/python-build.20210309124942.97911
Results logged to /var/folders/b7/nnczj7h90wn8ds7ht2ljn2l80000gn/T/python-build.20210309124942.97911.log
Last 10 log lines:
checking size of _Bool... 1
checking size of off_t... 8 …Run Code Online (Sandbox Code Playgroud)