数据框(data.frame)是R语言中常用的数据结构之一,它可以存储不同类型的数据,并以表格形式展示
创建数据框
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 创建一个示例数据框 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 |
查看数据结构
1 2 3 4 5 6 7 | 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 |
访问数据框中的元素
1 2 3 4 | my_df$col1 # 访问某一列 my_df[, 1] # 访问某一列(使用索引) my_df[2, 1] # 访问某一行某一列 my_df[ "row2" , "col1" ] # 访问某一行某一列(使用行名和列名) |
添加列到数据框
1 2 3 4 5 6 7 | 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 |
删除数据框中的列
1 2 3 4 5 6 7 | my_df$col2 <- NULL 结果: col1 col3 new_col 1 1 TRUE 4 2 2 FALSE 5 3 3 TRUE 6 |
过滤数据框
1 2 3 4 5 6 7 8 9 10 11 12 | 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 |
修改数据框元素
1 2 3 4 5 6 7 | my_df[1, 1] <- 10 结果: col1 col3 new_col 1 10 TRUE 4 2 2 FALSE 5 3 3 TRUE 6 |
合并数据框
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 创建两个数据框 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 创建两个数据框 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 创建两个数据框 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!