R transform() 函数 - 数据转换
R transform() 函数用于在数据框中添加新列或修改已有列。
transform() 让数据转换操作更加简洁,不需要反复写 df$ 前缀。
transform() 函数语法格式如下:
transform(`_data`, ...)
参数说明:
_data 输入数据框。
... 新列的定义(如 新列名 = 表达式)。
实例
# 原始数据框
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六"),
数学 = c(88, 92, 76, 85),
英语 = c(90, 88, 82, 78),
stringsAsFactors = FALSE
)
print("原始数据:")
print(df)
# 添加新列:总分和平均分
df_new <- transform(df,
总分 = 数学 + 英语,
平均分 = round((数学 + 英语) / 2, 1),
评价 = ifelse(平均分 >= 85, "优秀", ifelse(平均分 >= 80, "良好", "一般"))
)
print("添加新列后:")
print(df_new)
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六"),
数学 = c(88, 92, 76, 85),
英语 = c(90, 88, 82, 78),
stringsAsFactors = FALSE
)
print("原始数据:")
print(df)
# 添加新列:总分和平均分
df_new <- transform(df,
总分 = 数学 + 英语,
平均分 = round((数学 + 英语) / 2, 1),
评价 = ifelse(平均分 >= 85, "优秀", ifelse(平均分 >= 80, "良好", "一般"))
)
print("添加新列后:")
print(df_new)
执行以上代码输出结果为:
[1] "原始数据:" 姓名 数学 英语 1 张三 88 90 2 李四 92 88 3 王五 76 82 4 赵六 85 78 [1] "添加新列后:" 姓名 数学 英语 总分 平均分 评价 1 张三 88 90 178 89.0 优秀 2 李四 92 88 180 90.0 优秀 3 王五 76 82 158 79.0 一般 4 赵六 85 78 163 81.5 良好

R 语言实例