You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中与Python pandas的df.values等价的实现方法

R语言实现类似Python df.values的无标签数值矩阵方法

你可以通过unname()函数直接移除矩阵的行列标签,无需手动循环填充,实现代码如下:

# 针对你读取的df,直接执行即可
X <- unname(data.matrix(df))

原写法问题说明

  • 直接调用matrix(df)不符合预期的原因:R中data.frame本质是等长列表的集合,直接转换为矩阵会将每一列作为单个列表元素存入矩阵,取值时会返回整列列表而非单个数值。
  • data.matrix(df)已经完成了数值转换,只是默认保留了原data.frame的行名、列名作为矩阵的dimnames属性,输出时会显示标签,不会影响数值取值逻辑。

效果验证

用你提供的测试样本验证效果:

# 构造测试样本
X <- matrix(data=c(1,2,3,4,5,6), nrow=3, ncol=2)
df_dummy <- data.frame(X, row.names = c("A","B","C"))

# 转换为无标签数值矩阵
X_res <- unname(data.matrix(df_dummy))

输出结果完全符合需求:

> X_res
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
> X_res[1,1]
[1] 1

替代方案

你也可以手动清空矩阵的dimnames属性,效果完全一致:

X_res <- data.matrix(df_dummy)
dimnames(X_res) <- NULL

如果你的data.frame全为数值类型,用as.matrix(df)替换data.matrix(df)也能得到相同结果。

内容的提问来源于stack exchange,提问作者Eleonora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:06:03