我有一台4GB内存的笔记本电脑.但是,我想在R中加载/创建需要> 4GB内存的对象.我的HD(5GB)上有足够的交换空间来处理这个问题.但是,我不相信R默认使我能够使用这个交换空间.有什么方法可以实现分页,特别是对于R?
NB.出于速度原因,我更倾向于超越RAM和手动内存管理.我正在使用Linux.
我有一个制表符分隔的文件,包含多个表格,每个表格都以标题为首,例如"Azuay \n","Bolivar \n","Cotopaxi \n"等,每个表格用两个换行符分隔.在R中,我如何读取该文件并仅选择对应于例如"Bolivar"的表(即指定的行),同时忽略对应于"Cotopaxi"的下表和上面对应于"Azuay"的表.
NB.我宁愿不在R外面修改表格.
数据看起来像这样.该文件以制表符分隔.
Azuay
region begin stop
1A 2017761 148749885
1A 148863885 150111299
1A 150329391 150346152
1A 150432847 247191037
Bolivar
region begin stop
2A 2785 242068364
2A 736640 198339289
Cotopaxi
region begin stop
4A 2282 9951846
4A 11672561 11906166
Run Code Online (Sandbox Code Playgroud) 我正在尝试在表达式上使用一些正则表达式,其中子句有两个条件WHERE。我想要捕获的模式是 106 后跟任意数字,后跟必须是 3 或 4 的数字,即106[0-9][3-4]
首先,我尝试了这个:
SELECT DISTINCT Loggers
FROM [alo].[Forests] C
WHERE (R.LogSU = 3)
AND (ForestID REGEXP '106[0-9][3-4]')
Run Code Online (Sandbox Code Playgroud)
这会产生如下错误,最好知道原因。
Msg 102, Level 15, State 1, Line 16
Incorrect syntax near 'REGEXP'.
Run Code Online (Sandbox Code Playgroud)
接下来,我尝试了这个,它现在正在运行,但我不确定这是否是我想要的。
SELECT DISTINCT Loggers
FROM [alo].[Forests] C
WHERE (R.LogSU = 3)
AND (ForestID LIKE '106[0-9][3-4]')
Run Code Online (Sandbox Code Playgroud)
这会像我上面描述的那样吗?
我想(一如既往)使用性能更好的代码,但功能与以下内容等效:
write.table(results.df[seq(1, ncol(results.df),2)],file="/path/file.txt", row.names=TRUE, sep="\t")
write.table(results.df[seq(2, ncol(results.df),2)],file="/path/file2.txt",row.names=TRUE, sep="\t")
Run Code Online (Sandbox Code Playgroud)
results.df 是一个看起来如此的数据框:
row.names 171401 171401 111201 111201
1 1 0.8320923 10 0.8320923
2 2 0.8510621 11 0.8510621
3 3 0.1009001 12 0.1009001
4 4 0.9796110 13 0.9796110
5 5 0.4178686 14 0.4178686
6 6 0.6570377 15 0.6570377
7 7 0.3689075 16 0.3689075
Run Code Online (Sandbox Code Playgroud)
除了每个连续重复两次之外,列标题中没有一致的模式.
我想创建(1)一个只有奇数列的results.df文件和(2)另一个只有偶数列的文件results.df.我上面有一个解决方案,但是想知道是否有更好的方法来实现同样的目标.
IDEA UPDATE:我当时认为可能有一些切除方式 - 从内存中删除它 - 每个处理过的列而不是仅仅复制它.这样,数据帧的大小逐渐减小,可能会导致性能提升???
我想将数据帧拆分为6个不同大小的数据帧列表.我posns在下面用向量指定的分割位置.我尝试使用split但不是所需的输出,我得到6个同样大小的数据帧.
我怎样才能做到这一点?
posns = c(4,50,68,81,90)
df1 = structure(list(chrom = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制多面板图,其中一个面板是用于layout放置绘图的热图。我一直在绘制热图,pheatmap它提供了非常方便的配色方案等。
代码可以在这里pheatmap找到。
当我尝试以pheatmap这种方式使用时,它总是在新页面上绘制。我想这是因为它使用了包grid?有什么办法可以做到这一点pheatmap吗?
用于在条形图旁边生成热图的示例代码,但由于热图绘制在下面的新页面上,因此不会生成热图:
xlay=layout( matrix(c(2,2,1),nrow=1) )
layout.show(xlay)
barplot(rnorm(8),horiz=T)
pheatmap(matrix(rnorm(80),nrow=8))
Run Code Online (Sandbox Code Playgroud) 使用以下代码,我正在创建一个列表:
scales <- c(p="hye", r="t3")
details <- list(t=20,y="c", scales)
Run Code Online (Sandbox Code Playgroud)
目前,上面给出了一个列表如下:
$t
[1] 20
$y
[1] "c"
[[3]]
p r
"hye" "t3"
Run Code Online (Sandbox Code Playgroud)
但是我想要一个这样的列表:
$t
[1] 20
$y
[1] "c"
$p
[1] "hye"
$r
[1] "t3"
Run Code Online (Sandbox Code Playgroud)
由于这将在一个函数中重用,我想保留scales为一个向量参数,然后我可以插入到列表中.我怎样才能做到这一点?
我在python中编写了一个函数,它接受两个参数,其中一个是文件路径名.我在R中的循环中包装了对这个python函数的调用.我希望能够更新此R for循环中的变量,并将此变量的值作为文件路径名传递给python函数.我怎样才能做到这一点?
R代码:
for (file in filenames) {
file <- paste("/home/yyy/xx", file, sep="/")
system('python pylib/filefunction.py <TODO: file> divide') # divide is the 2nd argument
}
Run Code Online (Sandbox Code Playgroud) 我在MS Server Management studio v11.02上运行以下但是'我收到一个错误说:
The multi-part identifier "PO.LastPo" could not be bound.
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题?
SELECT DISTINCT PO.LastPo
INTO #IncludedPoll
FROM
(
-- Inner query makes sure member was actually enrolled for 2 yrs
SELECT LastPo, COUNT(*) AS Periods
FROM [Cye].[2_output_lastPoll] PO
WHERE PO.PollPq IN (1,2)
GROUP BY LastPo
) A
WHERE Periods IN (1,2) AND A.LastPo NOT IN (SELECT LastPo FROM #FilterPoll)
Run Code Online (Sandbox Code Playgroud)
#FilterPoll是一个临时表,我很好,并包含一些我想从#IncludedPoll临时表中过滤掉的ID .
我已经看过其他答案,但它们都与连接有关,这不应该是问题.