希望有一个快速的答案,我现在已经困惑了一段时间。
bp="300"
cur_sample="10_n1"
# PRINTS WHAT AT THIS POSITION BY ROW NAME AND COL NAME
FGA_matrix[cur_sample,bp]
[1] NA
# RETURNS AN ERROR
FGA_matrix[cur_sample,bp]=1
Error in Summary.factor(1L, na.rm = FALSE) :
‘max’ not meaningful for factors
In addition: Warning message:
In Ops.factor(i, 0L) : ‘>=’ not meaningful for factors
#HOWEVER
FGA_matrix[,as.character(bp)]=1
FGA_matrix[,as.character(bp)]
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# SO WE CAN ASSIGN VALUES BASED ON COL NAME
# BUT IT DOESN'T WORK FOR ROW NAMES
> FGA_matrix[cur_sample,]=1
Error in Summary.factor(1L, na.rm = FALSE) :
‘max’ not meaningful for factors
In addition: Warning message:
In Ops.factor(i, 0L) : ‘>=’ not meaningful for factors
有没有人知道如何根据行名称为df赋值?我确定有一个快速的答案,但我的谷歌搜索有点空缺。
非常感谢提前
EDIT;以下是所请求的数据框的顶部:
> FGA_matrix[1:10,1:10]
300 301 302 303 304 305 306 307 308 309
10_n1 NA NA NA NA NA NA NA NA NA NA
10_n2 NA NA NA NA NA NA NA NA NA NA
10_n3 NA NA NA NA NA NA NA NA NA NA
11_n1 NA NA NA NA NA NA NA NA NA NA
11_n2 NA NA NA NA NA NA NA NA NA NA
11_n3 NA NA NA NA NA NA NA NA NA NA
12_18_n1 NA NA NA NA NA NA NA NA NA NA
12_18_n2 NA NA NA NA NA NA NA NA NA NA
12_18_n3 NA NA NA NA NA NA NA NA NA NA
12_4_n1 NA NA NA NA NA NA NA NA NA NA
答案 0 :(得分:0)
感谢您的帮助。根据Onyambu的回答:
> FGA_matrix[rownames(FGA_matrix)==cur_sample,as.character(bp)]=5
> FGA_matrix[1:10,1:10]
300 301 302 303 304 305 306 307 308 309
10_n1 5 NA NA NA NA NA NA NA NA NA
10_n2 NA NA NA NA NA NA NA NA NA NA
10_n3 NA NA NA NA NA NA NA NA NA N
A