我需要在R中生成一个逻辑矩阵。矩阵的维度是动态的,矩阵的列名和行名都来自向量。
vector1 <- c(a,b,c,d)
vector2 <- c(a,c,e,f,g)
vector3 <- c(d,f,g,z)
以此类推。
它迭代每个向量,将向量名称设置为行名。如果在矩阵列名中找到向量值,则将对应的矩阵单元值设置为1,否则在矩阵中新增一列,并将该单元赋值为1。矩阵的值可以是1/0,它的工作方式应该是这样的
a b c d e f g z
vector1 1 1 1 1 0 0 0 0
vector2 1 0 1 0 1
假设您有一个矩阵(X)和第二个矩阵(src),使得X的行名是src的行名的子集,X的列名是src的列名的子集。用src的行和列、X的数据以及用缺省值(如0或NA)填充的缺失数据创建矩阵的最佳方法是什么?
下面是我的尝试,但我觉得在R中必须有一种标准的方法来做这件事。
# Assume row and columns are named
PadColumns <- function(x, src, fill = NA) {
# pad columns with default values
result <- matrix(fill, nrow = nrow(x), ncol
我需要获取矩阵中最小元素的行名和列名。
> mat = matrix(data=runif(12), nrow = 4, ncol=4)
> rownames(mat) = colnames(mat) = letters[1:4]
>
> mat
a b c d
a 0.3167865 0.6958895 0.4233572 0.3167865
b 0.1042599 0.1552235 0.8461520 0.1552235
c 0.6286461 0.9749868 0.2390978 0.6286461
d 0
如何在R data.frame 对象中设置行索引名?
我试着寻找堆栈溢出的答案,但我甚至想不出如何搜索它?
这一种解释了它,但是他们正在将它转换成一个矩阵?。
> dimnames(DF_c) = c("sample","cluster")
Error in `dimnames<-.data.frame`(`*tmp*`, value = c("sample", "cluster" :
invalid 'dimnames' given for data frame
在Python中,我只需要做Pa
我有一个很大的矩阵,以物种为列,以站点为行。它是一个存在/不存在矩阵(即每个物种可以存在=1或不存在= 0)。
有些物种是重复的,但它们的值并不相同(即相同的物种可以出现在一条记录中,而在另一条记录中则不存在)。
我需要合并列,即当一个物种被复制时,我只想保留一条记录并对所有值求和。
例如,给定这个矩阵:
A = matrix(c(1,0,1,1,1,1,0,0,1,1), nrow=2, ncol=5)
colnames(A)<-c("A","B","A","A","B")
A B A A B