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

相关推荐
YUDAMENGNIUBI29 分钟前
day20_逻辑回归
算法·机器学习·逻辑回归
XM_jhxx3 小时前
±0.03mm的精度怎么保证?翌东塑胶用AI赋能质量管控升级
人工智能
阿正的梦工坊3 小时前
深入理解 PyTorch 中的 unsqueeze 操作
人工智能·pytorch·python
澈2074 小时前
C++并查集:高效解决连通性问题
java·c++·算法
秦歌6665 小时前
DeepAgents框架详解和文件后端
人工智能·langchain
测试员周周6 小时前
【Appium 系列】第06节-页面对象实现 — LoginPage 实战
开发语言·前端·人工智能·python·功能测试·appium·测试用例
霸道流氓气质6 小时前
基于 Milvus Lite 的 Spring AI RAG 向量库实践方案与示例
人工智能·spring·milvus
旖-旎6 小时前
深搜练习(单词搜索)(12)
c++·算法·深度优先·力扣
ar01236 小时前
AR巡检平台:构筑智能巡检新模式的数字化引擎
人工智能·ar
语音之家6 小时前
【预讲会征集】ACL 2026 论文预讲会
人工智能·论文·acl