在R语言中从DataFrame生成以Name为行列名、值为减法结果的矩阵
实现方法
给定如下R数据框:
data.frame(Name = c("A", "B"), Value = c(1,2))
要生成行、列名为Name列取值,元素为对应行Value减对应列Value的矩阵,可通过以下代码实现:
# 初始化数据框 df <- data.frame(Name = c("A", "B"), Value = c(1,2)) # 生成差值矩阵 diff_matrix <- outer(df$Value, df$Value, FUN = `-`) # 为矩阵添加行名和列名 rownames(diff_matrix) <- df$Name colnames(diff_matrix) <- df$Name # 输出结果 diff_matrix
运行后会得到目标矩阵:
A B A 0 -1 B 1 0
说明
outer()函数可以对两个向量进行元素级的自定义运算,这里传入减法操作-,刚好实现行Value与列Value的逐元素相减。最后通过rownames()和colnames()设置对应的名称即可。
内容的提问来源于stack exchange,提问作者Ian.T
相关产品推荐
相关产品推荐

