[R] Review2before Self-Project

as.factor

n R, the as.factor function is used to convert a variable to a factor. Here's a concise explanation along with a demonstration:

Explanation:

  • Function: as.factor()
  • Usage: as.factor(x)
  • Description: Converts the variable x to a factor, which is a categorical variable in R.

Demonstration:

R 复制代码
# Create a sample vector with categorical data
gender <- c("Male", "Female", "Male", "Female", "Male")

# Convert the vector to a factor
gender_factor <- as.factor(gender)

# Display the original and converted factor
cat("Original Vector:", gender, "\n")
cat("Factorized Vector:", gender_factor, "\n")

# Check the levels of the factor
cat("Factor Levels:", levels(gender_factor), "\n")



> gender <- c("Male", "Female", "Male", "Female", "Male")
> gender_factor <- as.factor(gender)
> cat("Original Vector:", gender, "\n")
Original Vector: Male Female Male Female Male 
> cat("Factorized Vector:", gender_factor, "\n")
Factorized Vector: 2 1 2 1 2 
> cat("Factor Levels:", levels(gender_factor), "\n")
Factor Levels: Female Male 

注意 :在R中,cat函数用于将对象的文本表示输出到控制台。

as.numeric

在R中,as.numeric函数用于将对象转换为数值型(numeric)。以下是简洁的解释和演示:

解释:

  • 函数: as.numeric()
  • 用法: as.numeric(x)
  • 描述: 将输入的对象 x 转换为数值型。

演示:

R 复制代码
# 创建一个包含数字字符的字符向量
numeric_string <- c("123", "456", "789")

# 使用as.numeric将字符向量转换为数值型
numeric_vector <- as.numeric(numeric_string)

# 显示原始字符向量和转换后的数值型向量
cat("Original String Vector:", numeric_string, "\n")
cat("Numeric Vector:", numeric_vector, "\n")



> numeric_string <- c("123", "456", "789")
> numeric_vector <- as.numeric(numeric_string)
> cat("Original String Vector:", numeric_string, "\n")
Original String Vector: 123 456 789 
> cat("Numeric Vector:", numeric_vector, "\n")
Numeric Vector: 123 456 789 

演示解释:

  1. 我们创建一个包含数字字符的字符向量 numeric_string
  2. 使用 as.numeric 将字符向量转换为数值型向量 numeric_vector
  3. 显示原始字符向量和转换后的数值型向量。

na_if

在R中,na_if 函数用于将指定的值替换为缺失值(NA)。以下是简洁的解释和演示:

解释:

  • 函数: na_if()
  • 用法: na_if(x, y)
  • 描述: 将向量 x 中等于 y 的元素替换为缺失值(NA)。

演示:

R 复制代码
# 创建一个包含特定值的向量
values_vector <- c(1, 2, 3, 2, 4, 2, 5)

# 使用na_if将特定值替换为NA
result_vector <- na_if(values_vector, 2)

# 显示原始向量和替换后的向量
cat("Original Vector:", values_vector, "\n")
cat("Result Vector with NAs:", result_vector, "\n")



> cat("Original Vector:", values_vector, "\n")
Original Vector: 1 2 3 2 4 2 5 
> cat("Result Vector with NAs:", result_vector, "\n")
Result Vector with NAs: 1 NA 3 NA 4 NA 5 

rbind

在R中,rbind函数用于按行合并(按行绑定)两个或多个对象,这可以是矩阵、数据框(Data Frame)、向量或列表。以下是简洁的解释和演示:

解释:

  • 函数: rbind()
  • 用法: rbind(..., deparse.level = 1)
  • 描述: 将输入的对象按行合并成一个新的对象。

演示:

R 复制代码
# 创建两个数据框
df1 <- data.frame(Name = c("Alice", "Bob"), Age = c(25, 30))
df2 <- data.frame(Name = c("Charlie", "David"), Age = c(35, 40))

# 使用rbind合并两个数据框
merged_df <- rbind(df1, df2)

# 显示原始数据框和合并后的数据框
cat("Original Data Frame 1:\n", df1, "\n")
cat("Original Data Frame 2:\n", df2, "\n")
cat("Merged Data Frame:\n", merged_df, "\n")

演示解释:

  1. 我们创建两个数据框 df1df2,每个包含姓名(Name)和年龄(Age)列。
  2. 使用 rbind 将两个数据框按行合并,生成 merged_df
  3. 显示原始数据框和合并后的数据框。

比喻: 想象你有两张名单,一张是小学生名单,一张是初中生名单,rbind 就像是一个名单收集员,将这两张名单按照行排列,形成一个包含小学生和初中生的合并名单。这让你能够更方便地查看整个学生名单。

在使用 rbind 合并数据之前,确保两者的列数、行数或列名一致是很重要的。如果两者有不同的列数、行数或列名,可以根据具体情况进行处理:

情况一:列数不一致

如果两个对象的列数不一致,你可以考虑以下两种情况的处理方式:

1.1 添加缺失列
R 复制代码
# 创建两个数据框,其中一个有额外的列
df1 <- data.frame(Name = c("Alice", "Bob"), Age = c(25, 30))
df2 <- data.frame(Name = c("Charlie", "David"), Age = c(35, 40), Score = c(90, 85))

# 获取两个数据框共同的列名
common_cols <- intersect(names(df1), names(df2))

# 添加缺失列并合并
df1 <- df1[, common_cols]
df2 <- df2[, common_cols]

merged_df <- rbind(df1, df2)

# 显示原始数据框和合并后的数据框
cat("Original Data Frame 1:\n")
print(df1)
cat("\n")

cat("Original Data Frame 2:\n")
print(df2)
cat("\n")

cat("Merged Data Frame:\n")
print(merged_df)
cat("\n")

#或者使用show()
相关推荐
单线程_013 小时前
从案例分析 Vue3 Tokenizer+Parser 源码五
前端·javascript·vue.js
mldong10 小时前
你的 Vue3 项目也能有钉钉同款审批流设计器:npm 装包,10 分钟画出第一条审批流
前端·vue.js
2分钟速写快排11 小时前
什么是 RAG?如何用 RAG 实现一个用户记忆?
前端·后端·ai编程
passerby606112 小时前
如何自己造一个时间处理库
前端·javascript·github
走到天涯海角13 小时前
react里面的长列表渲染优化
前端·react.js·前端框架
小羊没烦恼!13 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
北岛贰13 小时前
迷茫焦虑期,我做了一个带支付带官网的 AI 聊天虚拟恋人 App
前端·人工智能·后端
mayaairi15 小时前
Vue2 组件通讯(三):全局事件总线、PubSub、插槽与组件实例属性
前端·javascript·vue.js
kyriewen15 小时前
面试官问我:AI 都能写代码了,前端凭什么还值 25K
前端·javascript·人工智能
风骏时光牛马16 小时前
AI源码分析:拆解模型底层实现逻辑
前端