我有一个数据帧'df',它由2列组成:Name& ID。
df 的值为:
名称ID
A 001
B 004
C 004
D 006 <我有一个矩阵 Mat (初始化为0),其中包含所有名称作为行和所有可能的ID(包括不在<的ID) strong> df ,例如002和005)作为列。我想要做的是将每个名称与 df 中的ID匹配,并将1放在 Mat 中的特定位置。
Mat 的结构为:001 002 003 004 005 006 007
A A
B
C > D
E E
这是我的第一个问题。对任何无意的错误道歉。
答案 0 :(得分:1)
将来,请加入MWE,就像我在下面所做的那样。
您应该能够:
class B {
private(set) var a: A!
init() {
//initialize all instance properties till here
a = A(closure: {[weak self] in self?.action(1)})
}
func action(i: Int) {
//...
}
}
特别注意df <-
data.frame(
Name = LETTERS[1:5]
, ID = formatC(c(1,4,4,6,7), width = 3, flag = "0")
, stringsAsFactors = FALSE
)
Mat <-
matrix(0, nrow = 5, ncol = 7
, dimnames = list(LETTERS[1:5]
, formatC(1:7, width = 3, flag = "0")))
for(i in 1:nrow(df)){
Mat[df$Name[i], df$ID[i]] <- Mat[df$Name[i], df$ID[i]] + 1
}
Mat
。没有它,您需要在stringsAsFactors == FALSE
中包含df$Name
和df$ID
,否则它们将成为因子并以数字形式返回其索引而不是字符标签。
我还在该位置添加了1而不是仅将其设置为“1”,因为从您的问题中不清楚是否可能有重复项。如果没有重复项,可能会有更优雅的方法,特别是如果没有重复的ID(如@alistaire建议的as.character
解决方案),但如果有重复项并且您没有重复项,则可能会失败对他们的明确处理。
编辑:我是如何完成这一切并没有意识到我正在重新创建diag
,直到我阅读@ alistaire的编辑评论?
现在你做想要这些因素:
table