簡體   English   中英

R-使用數據框中的列值查找矩陣名稱並匯總矩陣

[英]R - Using column value in data frame to lookup matrix name and summarize matrix

我試圖在現有數據框中添加新列,以顯示二進制矩陣中一個的數目。 現有數據框中的一列包含矩陣名稱,我正在嘗試查找其計數/總和。

例如,

r <- 10
c <- 10
MatA <- matrix(sample(0:1,r*c, replace=TRUE),r,c)
MatB <- matrix(sample(0:1,r*c, replace=TRUE),r,c)
MatC <- matrix(sample(0:1,r*c, replace=TRUE),r,c)

mat <- c("MatA","MatB","MatC")
size <- c(4,6,10)
df <- data.frame(mat,size)

我需要從df數據幀中查找mat列值(例如MatA, MatB, MatC ,以匹配矩陣名稱MatA, MatB, MatC並在添加到新列的df數據幀中的每個二進制矩陣中返回1的數目。

我嘗試使用循環,應用函數,但是迷失了如何使用df$mat的列值MatA作為矩陣名稱MatA的查找,並將sum(MatA==1)返回到數據幀df新列。

通過字符串使用get來引用變量

set.seed(7)
df$binary <- lapply(mat, function(x) sum(get(x)))

如果存儲為因素,則使用data.frame列

df$binary <- lapply(levels(df$mat)[df$mat], function(x) sum(get(x)))

將列存儲為字符串而不是因數

df <- data.frame(mat, size, stringsAsFactors = FALSE)
df$binary <- lapply(df$mat, function(x) sum(get(x)))

> df
   mat size binary
1 MatA    4     47
2 MatB    6     58
3 MatC   10     54

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM