在MATLAB中,下面的线将矩阵转换为矢量。它将矩阵一列一列地压平成向量。
myvar(:)
我该怎么处理艾根呢?解决方案应适用于矩阵的任何维度。
MatrixXd A(3,2);
VectorXd B(6);
A << 1,2,3,4,5,6;
B << A.col(0), A.col(1);
//This isn't general enough to work on any size Matrix
我正在努力计算R中数据帧中两组之间的t-test。下面的示例代码产生了一个有两列的数据帧:变量和值。有两个变量:"M“和"F”。
data <- data.frame(variable = c("M", "F", "F"), value = c(10,5,6))
我需要证明M和F的值在统计上是不同的。换句话说,10在统计上与5和6的平均值不同。我需要在此数据框中添加另一列来显示p值。当我运行下面的代码时,它给出了以下错误:
result <- data %>% mutate(newcolumn = t.test(
因此,对于我目前正在进行的数据评估,我想使用" for“循环编写一个矩阵。
假设我有一个介于0和100之间的随机数:
E <- runif(100, 0, 100)
t <- 0 #start
for(t in 0:90) {
D <- length(E[E >= t, E < (t + 10)])
t = t + 10
}
所以我想做的是在每次迭代时将"D“写到一个矩阵中,其中"t”在一列,"D“在另一列。
我听说你应该避免R中的循环,但我不知道有什么替代方法。
我想为我的数据的每一行(N = 500)填充一个2x2矩阵。
N = 500 # Number of observations
S = 2 # Number of rows and columns of the data
让我们假设这是我的示例数据。它包含5个协变量的500个观测值。
X <- data.frame(matrix(rexp(2500, rate=.1), ncol=5))
X
从我的模型中,我获得了每个协变量的2个系数。
beta <- data.frame(matrix(rexp(10, rate=.1), ncol=5))
beta
因为我想为数据的
我在R中有一个很大的稀疏矩阵(~500,000 x ~500,000),我试图用它的和除以每一列:
sm = t(t(sm) / colSums(sm))
但是,当我这样做时,我会得到以下错误:
# Error in evaluating the argument 'x' in selecting a method for function 't':
# Error: cannot allocate vector of size 721.1 Gb
在R有更好的方法吗?我能够很好地存储colSums,以及计算和存储稀疏矩阵的转置,但是当尝试执行"/"
我想将一个函数应用于多个列。我在dataframe data中的数据结构如下:
col1 col2 col3
x x x
x x x
x x x
特别是,我想在每一列的时间序列上应用ADF测试。
我想像这样的事情可能会奏效:
f <- function(x) ur.df(x, type = "none", lags = 10, selectlags = "AIC"))
sapply(data, f)
但是,似乎存在处理列的“变量”的问题。
它是如何正确完成的?
Update:使用此方法创建具有随机值的三列:
data =
我希望在每一步将我为设计的的结果写入矩阵或数据帧(稍后将该矩阵或数据帧转换为CSV文件)。
我的代码如下
我希望矩阵/数据文件有3列
for (i in 1:100) {
for (j in 2:100)
{
if (i<j) {
temp <- pairwiseAlignment(protein_dat[i,], protein_dat[j,],substitutionMatrix=BLOSUM62,type="local")
###save i value into column 1 [or Seq1 in the dat
我有一个非常大的csv文件(大约9100万行,所以for循环在R中花费了太长的时间)关键字之间的相似性(大约50,000个唯一关键字),当我读入data.frame时,它看起来像这样:
> df
kwd1 kwd2 similarity
a b 1
b a 1
c a 2
a c 2
这是一个稀疏列表,我可以使用sparseMatrix()将其转换为稀疏矩阵:
> myMatrix
a b c
a . 1 2
b 1 . .
c 2 . .
但是,现在我想把它转换成dist对象。我尝试了as.dist(myMatrix),但得到的错
我想写一个程序,在一定的间隔上绘制半圆上的点,在其他地方绘制一条直线。类似这样的东西:__n__。
我定义了一个时域,它被存储为一个向量(t = 0:0.01:5)。我假设我可以使用时间向量的元素定义半圆顶部的点:
if t>=2|t<=2.3
y = sqrt(.15^2-(t-2.15)^2);
但MATLAB产生了一个错误消息,说只有方阵才能平方。
我试图利用索引来表明我想要平方t向量的一个元素,而不是整个向量:
i = [200:230];
for t(200:230)
y = sqrt(.15^2-(t(i)-2.15)^2);
在这些失败之后,我注意到,将一个具有一列非