R_机器学习——常用语法技巧汇总

1. , 搜索妙用

在R语言中,当你使用双括号[ , ]来索引数据框(data frame)或矩阵(matrix)时,第一个位置是用来指定行的索引或名称,第二个位置是用来指定列的索引、名称或逻辑条件。

  • 第一个位置(即,前面的部分)用于指定你想要选择的行。你可以通过行的索引(数字)或行的名称(如果是字符型的话)来指定。

  • 第二个位置(即,后面的部分)用于指定你想要选择的列。同样地,你可以通过列的索引、列的名称或一个逻辑向量来指定。

例如,假设你有一个名为df的数据框,它包含几行和几列数据。如果你想选择第3行和第2列的数据,你可以这样做:

|---|------------|
| | df[3, 2] |

或者,如果数据框的行有名称(比如"row1", "row2", ...),列也有名称(比如"col1", "col2", ...),你可以使用这些名称来索引:

|---|----------------------|
| | df["row3", "col2"] |

如:

|---|--------------------------------------------------------------------|
| | tree_gini$cptable[which.min(tree_gini$cptable[,"xerror"]), "CP"] |

  • which.min(tree_gini$cptable[,"xerror"]) 这部分代码计算xerror列中最小值的位置(行索引)。
  • 然后,这个行索引被用在外部的双括号索引中,与列名"CP"一起,来选择cptable中对应行的CP值。

所以,在这个特定的例子中,第一个位置是指定行的索引(通过which.min()函数找到),第二个位置是指定列的名称("CP")。

2.()输出妙用

在R语言中,使用()进行输出妙用通常指的是在控制台中立即打印或显示某个对象或表达式的结果。

如果你有一个变量x,并且想要立即在控制台中查看它的值,你可以简单地在它后面加上()(尽管对于单个变量这通常不是必需的,因为直接输入变量名也会显示其值)。但是,这种用法在结合其他函数或表达式时很有用。

|---|--------------------|
| | x <- 42 |
| | (x) # 输出: [1] 42 |

R 复制代码
(confusion_matrix <- confusionMatrix(prediction, factor(test$y)))

3.其它常用技巧(精简版)

names()

设置或获取对象名称

|---|--------------------------------------------------------|
| | names(df) # 获取df数据框的所有列名 |
| | names(df) <- c("new_col1", "new_col2", ...) # 设置新的列名 |

cbind()rbind()

合并数据框或矩阵

|---|--------------------------------------------|
| | new_df <- cbind(df1, df2) # 按列合并df1和df2 |
| | new_df <- rbind(df1, df2) # 按行合并df1和df2 |

subset()

根据条件选择数据框的子集

|---|------------------------------------------------------------|
| | subset_df <- subset(df, col1 > 10 & col2 < 5) # 选择满足条件的行 |

with()

在数据框的上下文中执行表达式

|---|-------------------------------------------------------|
| | with(df, sum(col1 * col2)) # 计算df中col1和col2的逐元素乘积之和 |

apply()

对数据框或矩阵的行或列应用函数

|---|----------------------------------------|
| | apply(df, 1, sum) # 对df的每一行应用sum函数 |
| | apply(df, 2, mean) # 对df的每一列应用mean函数 |


++to be continued!!!++

相关推荐
Jerry12 小时前
LeetCode 189. 轮转数组
算法
Jerry12 小时前
LeetCode 739. 每日温度
算法
fanstuck13 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记15 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
WoooChi16 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法16 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI16 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹16 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧17 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选