我有一个程序可以进行一些数据分析,并且只有几百行.
在程序的早期,我想做一些质量控制,如果没有足够的数据,我希望程序终止并返回到R控制台.否则,我希望其余的代码执行.
我已经尝试了break,browser并且quit它们都没有停止执行程序的其余部分(并且quit停止执行以及完全退出R,这不是我想要发生的事情).我的最后一招是创建如下if-else声明:
if(n < 500){}
else{*insert rest of program here*}
Run Code Online (Sandbox Code Playgroud)
但这似乎是糟糕的编码实践.我错过了什么吗?
我试图在R中找到1347乘209974矩阵的列的相关性.每次我这样做(用简单的命令cor(matrix),我得到消息:
*** caught segfault ***
address 0xffffffffd058abf8, cause 'memory not mapped'
Traceback:
1: cor(matrix)
Run Code Online (Sandbox Code Playgroud)
是因为矩阵太大了吗?
如果是这样,除了使用两个连接的for循环找到每个唯一行之间的相关性之外,是否有人对如何找到相关性有任何建议?(我试过这个,需要几个小时.)
我已经检查过,并且所有行的标准偏差都不为零,所以我知道这不是没有计算相关性的原因.
如何阻止matplot循环播放不同的线条样式?现在我正在尝试以下两种方式的代码:
matplot(cbind(c(1,3,7,3), c(2,4,4,7)), type=c("l","l"), col=1)
matplot(cbind(c(1,3,7,3), c(2,4,4,7)), type="l", col=1)
Run Code Online (Sandbox Code Playgroud)
即使我试图明确告诉它只使用折线图,它也会循环遍历所有类型的虚线.
当我搜索"R中的矢量组合"时,SO上有数以千计的结果,但我无法找到问题的答案.如果它是重复的道歉:
我有一个向量(1,2,3,4),我想找到所有组合(n选择2)到(n选择n).换句话说,对于这个向量我想要:
1,2,3,4
1,2,3
1,2,4
1,3,4
2,3,4
1,2
1,3
1,4
2,3
2,4
3,4
Run Code Online (Sandbox Code Playgroud)
并且希望代码可以推广,这样一旦我有一个更大的向量,它就可以推广.
谢谢!
这是一个优化问题,我希望你有创意SO用户可能有答案.
我有一个大矩阵(500万x 2),有两个值:时间和类型.本质上,每个"类型"是它自己的时间序列 - 下面的数据代表三个不同的时间序列(一个用于A,一个用于B,一个用于C).有2000种不同的"类型".
mat
time type
[1,] 50 A
[2,] 50 A
[3,] 12 B
[4,] 24 B
[5,] 80 B
[6,] 92 B
[7,] 43 C
[8,] 69 C
Run Code Online (Sandbox Code Playgroud)
找到这2000个时间序列之间的相关性,最有效的方法是什么?我目前正在生成一个矩阵,每次发生事件时都有不同的二进制位,我填充该矩阵,在该时隙中发生了每个"类型"的事件数.在填充该矩阵之后,我遍历每对"类型"并找到相关性.这是非常低效的(约5小时).
如果存在一种by='type'在corR函数中实现特征的方法,我的整个问题可以解决吗?
感谢您的任何见解.
在R中,导出CSV时为什么列名总是偏离1?
x=matrix(c(1,2,3,4), nrow=2)
rownames(x) <- c("row1", "row2")
colnames(x) <- c("col1", "col2")
>x
col1 col2
row1 1 3
row2 2 4
write.table(x,"/Users/username/Desktop/x.csv", sep=",")
Run Code Online (Sandbox Code Playgroud)
列名始终向左移动一列:
*The resulting CSV looks like this when opened in Excel:*
col1 col2
row1 1 3
row2 2 4
*The resulting CSV looks like this when opened in TextEdit:*
"col1","col2"
"row1",1,3
"row2",2,4
Run Code Online (Sandbox Code Playgroud)
我一直有这个问题,但现在我的代码被用于专业目的,而不仅仅是玩数据,我需要弄清楚如何避免这种情况.我觉得这是一个相当容易的修复.