r 重命名 列名_R-定义数据框的行名和列名

本文介绍了如何在R语言中对数据框的列名进行重命名,包括使用`names()`函数修改列名,以及使用`row.names()`函数调整行名。此外,还提到了`name`函数在处理数据框时的作用。

参考如下:

R语言定义数据框的行名和列名

统计学与R读书笔记 徐俊晓


1、首先是直接输入数据

data.frame (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, 
    fix.empty.names = TRUE, stringsAsFactors = default.stringsAsFactors()) 
#其中…部分即可以直接输入数据
#也可以以tag = value的形式输入,tag即为列的标签

#1、直接输入列向量
a <- c(2,4,6)
b <- c(3,4,5)
c <- c(22,45,45)
df <- data.frame(a,b,c)
> df
  a b  c
1 2 3 22
2 4 4 45
3 6 5 45
#2、使用tag = value来输入数据
> df2 <- data.frame(aa = a, bb = b, cc= c)
> df2
  aa bb cc
1  2  3 22
2  4  4 45
3  6  5 45

2、输入了数据以后重命名行名和列名

列名的修改, names()

> names(df) <- c("male", "female", "unknown")
> df
  male female unknown
1    2      3      22
2    4      4      45
3    6      5      45

行名的修改, row.names()

> row.names(df) <- c("one","two","three")
{ #meta_data <- data.frame() # count_data <- summary meta_data<-data.frame(Sample_ID=factor(c("fat1_10a_1","fat1_10b_1","fat1_10c_1","fat1_11a_1","fat1_11b_1","fat1_11c_1","fat1_12a_1","fat1_12b_1","fat1_12c_1","fat1_14a_1","fat1_14b_1","fat1_14c_1","fat1_15a_1","fat1_15b_1","fat1_15c_1","fat1_2a_1","fat1_2b_1","fat1_2c_1","fat1_3a_1","fat1_3b_1","fat1_3c_1","fat1_4a_1","fat1_4b_1","fat1_4c_1","fat1_5a_1","fat1_5b_1","fat1_5c_1","fat1_6a_1","fat1_6b_1","fat1_6c_1","fat1_7a_1","fat1_7b_1","fat1_7c_1","fat1_8a_1","fat1_8b_1","fat1_8c_1","fat1_9a_1","fat1_9b_1","fat1_9c_1","10a_1","10b_1","10c_1","11a_1","11c_1","13a_1","13b_1","13c_1","16a_1","16b_1","16c_1","17a_1","17b_1","17c_1","1a_1","1b_1","1c_1","2a_1","2b_1","2c_1","5a_1","5b_1","5c_1","6a_1","6b_1","6c_1","7a_1","7b_1","7c_1","8a_1","8b_1","8c_1")) ,Alt_Name=c("fat1_10a_1","fat1_10b_1","fat1_10c_1","fat1_11a_1","fat1_11b_1","fat1_11c_1","fat1_12a_1","fat1_12b_1","fat1_12c_1","fat1_14a_1","fat1_14b_1","fat1_14c_1","fat1_15a_1","fat1_15b_1","fat1_15c_1","fat1_2a_1","fat1_2b_1","fat1_2c_1","fat1_3a_1","fat1_3b_1","fat1_3c_1","fat1_4a_1","fat1_4b_1","fat1_4c_1","fat1_5a_1","fat1_5b_1","fat1_5c_1","fat1_6a_1","fat1_6b_1","fat1_6c_1","fat1_7a_1","fat1_7b_1","fat1_7c_1","fat1_8a_1","fat1_8b_1","fat1_8c_1","fat1_9a_1","fat1_9b_1","fat1_9c_1","10a_1","10b_1","10c_1","11a_1","11c_1","13a_1","13b_1","13c_1","16a_1","16b_1","16c_1","17a_1","17b_1","17c_1","1a_1","1b_1","1c_1","2a_1","2b_1","2c_1","5a_1","5b_1","5c_1","6a_1","6b_1","6c_1","7a_1","7b_1","7c_1","8a_1","8b_1","8c_1"),Condition=factor(c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C","A","B","C")),Seq_Method=select_seq_method) #meta_data <- read.table("./metadata/metadata.txt", header = TRUE, sep = "\t", check.names = F) #meta_data<-meta_data[which(meta_data$Seq_Method==select_seq_method),] meta_data[, c(3:ncol(meta_data))] <- lapply(meta_data[, c(3:ncol(meta_data))] , factor) #meta_data <- meta_data[order(meta_data$Seq_Method, meta_data$Condition, meta_data$Alt_Name),] meta_data$Sample_ID<-as.character(meta_data$Sample_ID) meta_data$Alt_Name<-as.character(meta_data$Alt_Name) rownames(meta_data) <- meta_data$Alt_Name meta_data<-meta_data[which(meta_data$Seq_Method==select_seq_method),] filtered_count_data <- count_data[ ,meta_data$Sample_ID] rownames(filtered_count_data)<-count_data$Sequence print(paste0(select_seq_method,"_PCA_combined_sample_Nonfiltered_Sequence")) print(colnames(filtered_count_data)) #filtered_count_data <- filtered_count_data %>% filter(rowSums(.) >= ncol(filtered_count_data)) #threshold 1 reads/sample #old_names <- meta_data$file_name #new_names <- meta_data$tr_name #colnames(filtered_count_data) <- new_names[match(colnames(filtered_count_data), old_names)] # Calculate the total counts per sample numeric_cols <- sapply(filtered_count_data, is.numeric) total_counts <- colSums(filtered_count_data[, numeric_cols]) colnames(filtered_count_data) # Convert counts to RPM filtered_count_data_RPM <- sweep(filtered_count_data, 2, total_counts, FUN = function(x, y) x / y * 1000000) rownames(filtered_count_data_RPM)<-rownames(filtered_count_data) filter_RPM=1 filtered_count_data_RPM <- filtered_count_data_RPM[rowSums(filtered_count_data_RPM) >= filter_RPM*ncol(filtered_count_data_RPM), ] filtered_count_data_RPM <- cbind(row.names(filtered_count_data_RPM), filtered_count_data_RPM) colnames(filtered_count_data_RPM)[1] <- "Sequence" select<-which(match(count_data$Sequence,rownames(filtered_count_data_RPM),nomatch=0)>0) filtered_count_data<-count_data[select,meta_data$Sample_ID] meta_data$Condition<-factor(meta_data$Condition) colnames(filtered_count_data)<- meta_data$Alt_Name filtered_count_data <- as.matrix(filtered_count_data) filtered_count_data[which(filtered_count_data<0)]=0 filtered_count_data <- apply(filtered_count_data, 2, as.integer) dds <- DESeqDataSetFromMatrix(countData = filtered_count_data, colData = meta_data, design= ~ Condition) dds <- DESeq(dds) vsd <- vst(dds, blind = FALSE) rv <- rowVars(assay(vsd)) select <- order(rv, decreasing = TRUE)[seq_len(length(rv))] pca_res <- pca(assay(vsd)[select, ], metadata = meta_data) pscree <- screeplot(pca_res, components = getComponents(pca_res, 1:length(pca_res$components)), hline = 80, axisLabSize = 12, titleLabSize = 14, title = 'PCA SCREE', returnPlot = FALSE) + theme(plot.title = element_text(hjust = 0.5)) ppairs <- pairsplot(pca_res, components = getComponents(pca_res, c(1:7)), hline = 0, vline = 0, triangle = TRUE, trianglelabSize = 12, pointSize = 1, gridlines.major = FALSE, gridlines.minor = FALSE, titleLabSize = 14, title = 'PCA Pairs', plotaxes = FALSE, colby = 'Condition') pbiplot <- biplot(pca_res, title=select_seq_method, # showLoadings = TRUE, lab = paste0(pca_res$metadata$Alt_Name), labSize=6, pointSize=5, axisLabSize = 20, titleLabSize = 20, legendPosition = 'right', colby = "Condition", hline = 0, vline = 0, max.overlaps = Inf, gridlines.major = FALSE, gridlines.minor = FALSE) + theme(plot.title = element_text(hjust = 0.5)) PCA_plot <- cowplot::plot_grid(pscree, ppairs, pbiplot, ncol = 2, rel_widths = c(1, 1)) ggsave(filename = paste(output_address,select_seq_method,"_PCA_combined_sample_filtered_NO_Annotation_Sequence_20251016.pdf",sep = ""), plot = PCA_plot, height =60, width = 60, units = "cm") print(paste0(select_seq_method,"_PCA_combined_sample_filtered_NO_Annotation_Sequence_20251016 Output!")) } 修改这段代码中把DESEQ2结果中以count_data中sequence列为列名保存
最新发布
10-17
> load_spatial_sample <- function(sample_dir) { + # 1. 自动检测文件 + files <- list.files(sample_dir, full.names = TRUE) + + # 2. 加载表达矩阵 + data <- Seurat::Read10X(data.dir = sample_dir) + seurat_obj <- Seurat::CreateSeuratObject(counts = data, assay = "Spatial") + + # 3. 加载空间信息 + positions <- read.csv(grep("tissue_positions_list\\.csv", files, value = TRUE)) + scalefactors <- rjson::fromJSON(file = grep("scalefactors_json\\.json", files, value = TRUE)) + + # 4. 处理图像文件 + lowres_file <- grep("tissue_lowres_image\\.png", files, value = TRUE)[1] + tif_files <- files[grep("\\.tiff?$", files, ignore.case = TRUE)] + if (length(tif_files) > 0) { + # 获取文件大小 + file_sizes <- file.info(tif_files)$size + # 找到最大的文件 + hires_file <- tif_files[which.max(file_sizes)] + } else { + # 如果没有找到tif文件,则尝试用原来的方式(这里原方式可能已经无效,所以也可以停止) + # 或者寻找其他图像格式?根据实际情况可能需要调整 + hires_file <- grep(paste0("^", basename(sample_dir), "\\.tiff$"), files, value = TRUE)[1] + if (is.na(hires_file)) { + stop("未找到高分辨率图像文件") + } + } + + lowres_img <- EBImage::readImage(lowres_file) + hires_img <- EBImage::readImage(hires_file) + + + # 5. 创建VisiumV1对象 + spatial_obj <- new( + Class = "VisiumV1", + image = hires_img, + scale.factors = scalefactors( + spot = scalefactors$spot_diameter_fullres, + fiducial = scalefactors$fiducial_diameter_fullres, + hires = scalefactors$tissue_hires_scalef, + lowres = scalefactors$tissue_lowres_scalef + ), + coordinates = positions, + spot.radius = scalefactors$spot_diameter_fullres / 2 + ) + # 6. 整合到Seurat对象 + spatial_obj <- spatial_obj[Cells(seurat_obj)] + seurat_obj[["slice1"]] <- spatial_obj + return(seurat_obj) + } > sample_dirs <- list.dirs("D:/PDAC/PMID35995947/ST/data", recursive = FALSE)[1:15] # 前15个文件夹 > seurat_list <- lapply(sample_dirs, function(dir) { + cat("Processing:", basename(dir), "\n") + load_spatial_sample(dir) + }) Processing: HT224P1-S1 错误于scalefactors(spot = scalefactors$spot_diameter_fullres, fiducial = scalefactors$fiducial_diameter_fullres, : 没有"scalefactors"这个函数 Called from: initialize(value, ...)
09-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值