[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()
相关推荐
neter.asia1 分钟前
vue中如何关闭eslint检测?
前端·javascript·vue.js
~甲壳虫2 分钟前
说说webpack中常见的Plugin?解决了什么问题?
前端·webpack·node.js
光影少年21 分钟前
vue2与vue3的全局通信插件,如何实现自定义的插件
前端·javascript·vue.js
As977_22 分钟前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
susu108301891124 分钟前
vue3 css的样式如果background没有,如何覆盖有background的样式
前端·css
Ocean☾25 分钟前
前端基础-html-注册界面
前端·算法·html
Rattenking26 分钟前
React 源码学习01 ---- React.Children.map 的实现与应用
javascript·学习·react.js
Dragon Wu28 分钟前
前端 Canvas 绘画 总结
前端
CodeToGym32 分钟前
Webpack性能优化指南:从构建到部署的全方位策略
前端·webpack·性能优化
~甲壳虫33 分钟前
说说webpack中常见的Loader?解决了什么问题?
前端·webpack·node.js