数据框(data.frame)是R语言中常用的数据结构之一,它可以存储不同类型的数据,并以表格形式展示

创建数据框

# 创建一个示例数据框
my_df <- data.frame(
  col1 = c(1, 2, 3),
  col2 = c("A", "B", "C"),
  col3 = c(TRUE, FALSE, TRUE)
)


结果:
  col1 col2  col3
1    1    A  TRUE
2    2    B FALSE
3    3    C  TRUE

  

查看数据结构

str(my_df)

结果:
'data.frame': 3 obs. of  3 variables:
 $ col1: num  1 2 3
 $ col2: Factor w/ 3 levels "A","B","C": 1 2 3
 $ col3: logi  TRUE FALSE TRUE

  

访问数据框中的元素

my_df$col1  # 访问某一列
my_df[, 1]  # 访问某一列(使用索引)
my_df[2, 1]  # 访问某一行某一列
my_df["row2", "col1"]  # 访问某一行某一列(使用行名和列名)

  

添加列到数据框

my_df$new_col <- c(4, 5, 6)

结果:
  col1 col2  col3 new_col
1    1    A  TRUE       4
2    2    B FALSE       5
3    3    C  TRUE       6

  

删除数据框中的列

my_df$col2 <- NULL

结果:
  col1  col3 new_col
1    1  TRUE       4
2    2 FALSE       5
3    3  TRUE       6

  

过滤数据框

filtered_df <- my_df[my_df$col1 > 2, ]
subset_df <- my_df[1:2, c("col1", "col3")]

结果:
# filtered_df:
  col1  col3 new_col
3    3  TRUE       6

# subset_df:
  col1  col3
1    1  TRUE
2    2 FALSE

  

修改数据框元素

my_df[1, 1] <- 10

结果:
  col1  col3 new_col
1   10  TRUE       4
2    2 FALSE       5
3    3  TRUE       6

合并数据框

# 创建两个数据框
df1 <- data.frame(ID = c(1, 2, 3),
                  Name = c("Alice", "Bob", "Charlie"))

df2 <- data.frame(ID = c(2, 3, 4),
                  Age = c(25, 30, 35))

# 使用 merge() 函数按照共有的列(ID)进行合并
merged_df <- merge(df1, df2, by = "ID")

结果:
  ID   Name Age
1  2    Bob  25
2  3 Charlie  30

 

# 创建两个数据框
df1 <- data.frame(ID = c(1, 2, 3),
                  Name = c("Alice", "Bob", "Charlie"))

df2 <- data.frame(Age = c(25, 30, 35))

# 使用 cbind() 函数按列合并数据框
merged_df <- cbind(df1, df2)

结果:
  ID   Name Age
1  1  Alice  25
2  2    Bob  30
3  3 Charlie  35

 

# 创建两个数据框
df1 <- data.frame(ID = c(1, 2, 3),
                  Name = c("Alice", "Bob", "Charlie"))

df2 <- data.frame(ID = c(4, 5, 6),
                  Name = c("Dave", "Eve", "Frank"))

结果:
  ID   Name
1  1  Alice
2  2    Bob
3  3 Charlie
4  4   Dave
5  5    Eve
6  6  Frank

  

 

posted on 2023-06-04 21:36  黑逍逍  阅读(51)  评论(0)    收藏  举报