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

如何对数据集按数值列、因子列排序并分离两类列?

解决方法(R语言)

假设你的数据集名为df,以下是完成两项操作的具体代码和解释:

1. 将列按「数值列在前、因子列在后」排序

先识别每一列的类型,再重新排列数据框的列顺序:

# 获取数值列的名称
num_cols <- names(df)[sapply(df, is.numeric)]
# 获取因子列的名称
factor_cols <- names(df)[sapply(df, is.factor)]

# 重新排列列:数值列在前,因子列在后
df_sorted <- df[, c(num_cols, factor_cols)]

代码解释

  • sapply(df, is.numeric):遍历数据框的每一列,判断是否为数值类型,返回布尔值向量
  • names(df)[...]:根据布尔值筛选出对应类型的列名
  • df[, c(num_cols, factor_cols)]:按指定的列名顺序重新生成数据框

2. 分离数值列与因子列

直接用上面得到的列名,分别提取出两个独立的数据框:

# 提取数值列数据框
df_numeric <- df[, num_cols]
# 提取因子列数据框
df_factor <- df[, factor_cols]

验证结果

你可以用str()函数查看处理后的数据集结构,确认是否符合要求:

str(df_sorted)  # 查看排序后的数据集结构
str(df_numeric) # 查看数值列数据集结构
str(df_factor)  # 查看因子列数据集结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:05:48