目录

c-函数在-R-中的用途详解

c() 函数在 R 中的用途详解

[https://csdnimg.cn/release/blogv2/dist/pc/img/activeVector.png VibeCoding·九月创作之星挑战赛 10w+人浏览 1.7k人参与

https://csdnimg.cn/release/blogv2/dist/pc/img/arrowright-line-Black.png]( )

c() 函数在 R 中的用途详解

c() 函数是 R 语言中最基础且最重要的函数之一,它是 “combine”(组合)的缩写,用于将多个值或向量组合成一个向量。

代码解析

在您提供的代码中:
model_origin <- c(
rep(“MDA PCa 79”, 3),
rep(“MDA PCa 117-9”, 3),
rep(“MDA PCa 130”, 2),
rep(“MDA PCa 144-4”, 5),
rep(“MDA PCa 144-13”, 4),
rep(“MDA PCa 146-10”, 3),
“MDA PCa 155-2”,
“MDA PCa 155-12”
)

c() 函数的作用是将所有 rep() 函数生成的向量和单独的元素组合成一个完整的向量。

c() 函数详解

基本语法

c(…, recursive = FALSE, use.names = TRUE)

• …:要组合的对象(可以是向量、列表或单个值)

• recursive:是否递归处理列表(默认为 FALSE)

• use.names:是否保留名称(默认为 TRUE)

结果解释

执行后,model_origin 向量将包含:
• 3 个 “MDA PCa 79”(来自 rep(“MDA PCa 79”, 3))

• 3 个 “MDA PCa 117-9”(来自 rep(“MDA PCa 117-9”, 3))

• 2 个 “MDA PCa 130”(来自 rep(“MDA PCa 130”, 2))

• 5 个 “MDA PCa 144-4”(来自 rep(“MDA PCa 144-4”, 5))

• 4 个 “MDA PCa 144-13”(来自 rep(“MDA PCa 144-13”, 4))

• 3 个 “MDA PCa 146-10”(来自 rep(“MDA PCa 146-10”, 3))

• 1 个 “MDA PCa 155-2”(直接作为字符串)

• 1 个 “MDA PCa 155-12”(直接作为字符串)

总共 3+3+2+5+4+3+1+1 = 22 个元素,与您的样本数量一致。

为什么使用 c()?

  1. 组合多个向量:将多个独立的向量合并成一个向量
  2. 创建复杂数据结构:可以混合使用重复模式和单个值
  3. 保持顺序:确保元素的顺序与输入顺序一致
  4. 基础操作:是许多更复杂操作的基础构建块

实际应用场景

  1. 创建简单向量

创建数值向量

numbers <- c(1, 2, 3, 4, 5)

创建字符向量

fruits <- c(“apple”, “banana”, “orange”)

创建逻辑向量

logicals <- c(TRUE, FALSE, TRUE)

  1. 组合现有向量

组合两个向量

vector1 <- c(1, 2, 3)
vector2 <- c(4, 5, 6)
combined <- c(vector1, vector2) # 结果: 1,2,3,4,5,6

  1. 添加元素到现有向量

在向量末尾添加元素

colors <- c(“red”, “green”, “blue”)
more_colors <- c(colors, “yellow”, “purple”)

在向量开头添加元素

more_colors <- c(“yellow”, colors)

  1. 创建因子变量

创建分组因子

groups <- c(rep(“Control”, 5), rep(“Treatment”, 5))
groups_factor <- factor(groups)

进阶用法

  1. 使用命名元素

创建带有名称的向量

named_vector <- c(a = 1, b = 2, c = 3)

  1. 递归组合(处理列表)

递归组合列表

list1 <- list(a = 1, b = 2)
list2 <- list(c = 3, d = 4)
combined_list <- c(list1, list2, recursive = TRUE)

  1. 类型转换

混合类型时会发生类型转换

mixed <- c(1, “two”, TRUE) # 所有元素会被转换为字符型

注意事项

  1. 类型一致性:c() 会尝试将所有元素转换为相同的类型(遵循类型优先级:字符 > 数值 > 逻辑)
  2. 维度丢失:使用 c() 会丢失矩阵或数组的维度属性
  3. 性能考虑:对于大型数据集,使用更高效的数据结构(如data.table)可能更合适

在您的临床数据框创建中,c() 函数与 rep() 函数配合使用,确保了模型来源信息能够准确对应到每个样本,这是进行正确分组分析的基础。