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

相关推荐
我就是全世界6 分钟前
TensorRT-LLM:大模型推理加速的核心技术与实践优势
人工智能·机器学习·性能优化·大模型·tensorrt-llm
.30-06Springfield10 分钟前
决策树(Decision tree)算法详解(ID3、C4.5、CART)
人工智能·python·算法·决策树·机器学习
我不是哆啦A梦10 分钟前
破解风电运维“百模大战”困局,机械版ChatGPT诞生?
运维·人工智能·python·算法·chatgpt
xiaolang_8616_wjl14 分钟前
c++文字游戏_闯关打怪
开发语言·数据结构·c++·算法·c++20
small_wh1te_coder21 分钟前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
galaxylove23 分钟前
Gartner发布塑造安全运营未来的关键 AI 自动化趋势
人工智能·安全·自动化
挺菜的1 小时前
【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
java·开发语言·算法
强哥之神2 小时前
英伟达发布 Llama Nemotron Nano 4B:专为边缘 AI 和科研任务优化的高效开源推理模型
人工智能·深度学习·语言模型·架构·llm·transformer·边缘计算
Green1Leaves2 小时前
pytorch学习-9.多分类问题
人工智能·pytorch·学习
kyle~2 小时前
计算机视觉---RealSense深度相机技术
人工智能·数码相机·计算机视觉·机器人·嵌入式·ros·传感器