[英]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.