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!!!++

相关推荐
格林威18 分钟前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
倔强青铜三1 小时前
苦练Python第63天:零基础玩转TOML配置读写,tomllib模块实战
人工智能·python·面试
递归不收敛1 小时前
吴恩达机器学习课程(PyTorch 适配)学习笔记:3.3 推荐系统全面解析
pytorch·学习·机器学习
B站计算机毕业设计之家1 小时前
智慧交通项目:Python+YOLOv8 实时交通标志系统 深度学习实战(TT100K+PySide6 源码+文档)✅
人工智能·python·深度学习·yolo·计算机视觉·智慧交通·交通标志
高工智能汽车1 小时前
棱镜观察|极氪销量遇阻?千里智驾左手服务吉利、右手对标华为
人工智能·华为
IT森林里的程序猿2 小时前
基于机器学习方法的网球比赛胜负趋势预测
python·机器学习·django
txwtech2 小时前
第6篇 OpenCV RotatedRect如何判断矩形的角度
人工智能·opencv·计算机视觉
正牌强哥2 小时前
Futures_ML——机器学习在期货量化交易中的应用与实践
人工智能·python·机器学习·ai·交易·akshare
倔强青铜三2 小时前
苦练Python第62天:零基础玩转CSV文件读写,csv模块实战
人工智能·python·面试
大模型真好玩2 小时前
低代码Agent开发框架使用指南(二)—Coze平台核心功能概览
人工智能·coze·deepseek