首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

变异函数中的case_when出错:输入必须是向量

case_when 函数是 R 语言中用于条件判断的一个非常强大的工具,它允许你根据多个条件来对数据进行分类或转换。如果你在使用 case_when 时遇到错误提示“输入必须是向量”,这通常意味着你传递给 case_when 的数据不是向量格式。

基础概念

case_when 函数的基本语法如下:

代码语言:txt
复制
case_when(
  condition1 ~ result1,
  condition2 ~ result2,
  ...
  TRUE ~ result_default
)

每个 condition 是一个逻辑表达式,如果为真,则返回对应的 result。如果没有条件为真,则返回 TRUE ~ result_default 中定义的默认值。

可能的原因

  1. 数据类型不正确:传递给 case_when 的数据不是向量,可能是数据框(data frame)或其他非向量类型。
  2. 函数使用不当:可能在数据框上直接使用了 case_when 而没有指定列。

解决方法

确保输入是向量

如果你有一个数据框,并且想要对某一列应用 case_when,你需要先选择那一列,确保它是一个向量。

代码语言:txt
复制
# 假设 df 是一个数据框,我们想要修改 column_name 这一列
df$column_name <- case_when(
  df$column_name == "some_value" ~ "new_value1",
  df$column_name == "another_value" ~ "new_value2",
  TRUE ~ df$column_name
)

示例代码

以下是一个完整的示例,展示了如何在数据框中使用 case_when

代码语言:txt
复制
# 创建一个示例数据框
df <- data.frame(
  id = 1:5,
  category = c("A", "B", "A", "C", "B")
)

# 使用 case_when 修改 category 列
df$category <- case_when(
  df$category == "A" ~ "Category Alpha",
  df$category == "B" ~ "Category Beta",
  df$category == "C" ~ "Category Gamma",
  TRUE ~ "Unknown Category"
)

print(df)

应用场景

case_when 在数据处理中非常有用,特别是在需要根据多个条件对数据进行分类或转换时。例如:

  • 根据用户的年龄划分不同的用户组。
  • 根据产品的销售额设置不同的价格等级。
  • 根据天气情况标记户外活动的适宜性。

相关优势

  • 灵活性:可以处理复杂的条件逻辑。
  • 可读性:相比一系列的 ifelse 语句,case_when 提供了更清晰的条件表达。
  • 效率:在处理大数据集时,case_when 通常比多个嵌套的 ifelse 更高效。

通过确保传递给 case_when 的是向量,并且正确地选择和应用到数据框的列上,你可以避免“输入必须是向量”的错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么vue中的data必须是一个函数?

引用类型与函数区别 引用类型与函数 object是引用类型,如果不用function返回,每个组件的data都是内存的同一个地址,一个数据改变了其他也改变了。...js中只有函数构成作用域(只有函数的{}构成作用域,对象的{}以及if(){}都不构成作用域),data是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,不会互相影响。...,另外一个实例也会跟着改; 两个实例必须有自己各自的作用域才行,需要通过下列方法进行处理 const Mycomponent = function(){ this.data = this.data...(); } Mycomponent.prototype.data = function(){ return { a: 1, b: 2 } } 这样每一个实例的data属性都是独立的...这是js本身的特性带来的,跟vue本身设计无关。

1K10
  • 群体遗传三剑客第一篇:分组和不分组的PCA分析,添加解释百分比

    绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...以下是对代码各部分的详细解释: 1. 读取数据 m012 = fread("plink.raw") fread 是 data.table 包中的一个函数,用于快速读取文本文件。...计算特征值和特征向量 re = eigen(Gmat) eigen 函数用于计算矩阵的特征值和特征向量,结果存储在 re 中。 6....使用 mutate 和 case_when 函数根据 Gen 列的值为每个个体分配颜色。 scatterplot3d 函数绘制三维散点图,指定颜色、点的形状、角度等参数。

    17210

    PCA分析 | 不同品种的基因型数据绘制2D和3D的PCA图

    PCA是降维的一种方法。 很多软件可以分析PCA,这里介绍一下使用plink软件和R语言,进行PCA分析,并且使用ggplot2绘制2D和3D的PCA图。...绘制后的图如下: 2-D PCA图: image.png 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: image.png 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    2.5K50

    听说WGCNA官网崩了?那还能做基因共表达分析吗?

    (解读版)(逆向收费读文献2019-19) 关键问题答疑:WGCNA的输入矩阵到底是什么格式 但,不幸的是wgcna官网现在已经挂了: http://www.genetics.ucla.edu/labs...主要的变异来源是发育阶段、组织和重复样本。我通常会制作一个汇总表来指导我的下游分析: 发育阶段可以作为数值变量或定性变量进行分析。 现在我们了解了实验设计,接下来我们将确定实验中变异的主要驱动因素。...换句话说,在发育阶段和组织之间,哪个因素对实验中的变异贡献更大?这个问题的答案对于我们如何最有效地可视化数据至关重要。 获得实验全局视图的一个好方法是进行主成分分析(PCA)。...首先需要注意的是技术差异。看来解剖方法确实是变异的主要来源,与PC1完全对应。...Gene co-expression分析(接下来正式进行类似的wgcna的模块分析,共表达) 1.首先对重复的样本进行取均值 这不是一个必须的操作,只因为我们对组织-阶段组合之间的生物学变异感兴趣,而对同一处理中复制品之间的噪声不太感兴趣

    19610

    PCA分析给出每个主成分的解释百分比

    PCA是降维的一种方法。 很多软件可以分析PCA,这里介绍一下使用plink软件和R语言,进行PCA分析,并且使用ggplot2绘制2D和3D的PCA图。...绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    27210

    育种中PCA分析可视化

    PCA是降维的一种方法。 很多软件可以分析PCA,这里介绍一下使用plink软件和R语言,进行PCA分析,并且使用ggplot2绘制2D和3D的PCA图。...绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012的raw...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    54810

    基因型数据PCA可视化+分组可视化+2D+3D+解释百分比

    PCA是降维的一种方法。 很多软件可以分析PCA,这里介绍一下使用plink软件和R语言,进行PCA分析,并且使用ggplot2绘制2D和3D的PCA图。...绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    95650

    圈图 | 不同品种的基因型数据绘制PCA图和聚类分析图

    PCA是降维的一种方法。 本次再增加一下聚类的形式。 很多软件可以分析PCA,这里介绍一下使用plink软件和R语言,进行PCA分析,并且使用ggplot2绘制2D和3D的PCA图。...绘制后的图如下: 2-D PCA图: ? 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    2.1K20

    表型数据和基因型数据--聚类分析

    绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012的raw...setDF(g012) rownames(g012) = g012$IID g012$IID = NULL g012$FID = NULL Gmat = A.mat(g012-1) # 计算特征值和特征向量...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    2.4K20

    基因型数据绘制PCA图和聚类分析图

    绘制后的图如下: 2-D PCA图: 图片解释,将每个品种用不同的颜色表示,同时绘制置信区间圆圈,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异。...3-D PCA图: 图片解释,将每个品种用不同的颜色表示,X坐标是PC1,解释24.9%的变异,Y坐标是PC2,解释10.61%的变异,Z坐标是PC3,解释1.02%的变异。...2,计算G矩阵 3,计算PCA的特征向量和特征值 4,根据特征值计算解释百分比 5,根据特征向量和品种标签,进行PCA的绘制 绘制代码如下: 首先,使用plink命令,将基因型数据转化为012...setDF(g012) rownames(g012) = g012$IID g012$IID = NULL g012$FID = NULL Gmat = A.mat(g012-1) # 计算特征值和特征向量...fill=F)+ theme_bw() # 主题 # 绘制3-D PCA图 library(scatterplot3d) pca_re2 = pca_re2 %>% mutate(colour = case_when

    3K41

    数据处理第2节:将列转换为正确的形状

    转换列:基础部分 您可以使用mutate()函数创建新列。 mutate中的选项几乎是无穷无尽的:你可以对普通向量做任何事情,可以在mutate()函数内完成。...此信息必须是返回布尔值的函数。...在这种情况下,您可以包装任何列的选择(使用select()函数内可能的所有选项)并将其包装在vars()中。 其次,它需要以函数形式的变异指令。 如果需要,请使用代字号或funs()之前(见上文)。...不幸的是,似乎没有简单的方法让case_when()返回一个有序的因子,所以你需要自己做,之后使用forcats :: fct_relevel(),或者只是一个因子()函数。...在前面的示例中,新列“sleep_measure”是一个字符向量。 如果您要进行总结或后续的绘制,则该列将按字母顺序排序。

    8.1K30

    R语言专题3-条件和循环

    专题3.条件和循环1.条件语句-if(){}1.1 只有if# if()里的内容一定得是逻辑值,可以是你写上的T和F,也可以是运算结果# 若运算结果为T或者你写上了T,他就会执行后续语句,反之则不执行#...# 3个参数# ifelse(x,yes,no)# x:逻辑值或者逻辑向量;yes:逻辑值为T时的返回值;no:逻辑值为F时的返回值# 简单示范i = 1ifelse(i>0,'+','-')## [1...str_detect()进行连用,用之前别忘记加载R包library(stringr)# 1.随便生成一个向量,取名样本。...tumor和3个normalsamples = c("tumor1","tumor2","tumor3","normal1","normal2","normal3")# 2.利用str_detect()函数检测样本里的每个元素是否包含...,大家可以先从看懂模仿开始## [1] "0"补充:case_when()# 用之前先加载R包dplyrlibrary(dplyr)# 先来个简单的,case_when是按顺序进行判断的i = 0case_when

    24530

    生信入门马拉松之R语言基础-脚本项目管理、条件循环、表达矩阵和一丢丢数据挖掘(Day 7)

    2.3 if条件语句控制代码运行elseif(F){}啥都不敢if(F){}elese{}#运行else后的{}中的代码2.4 ifelse函数只有3个参数ifelse(x,yes,no)x:逻辑或逻辑值向量..., sum)#对test每一行求和向量/列表的隐式循环-lapply,批量操作### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm...表达矩阵:一行是一个基因在所有样品里的表达,一列是一个样本里所有基因的表达。在表达矩阵中,寻找在不同组有表达差异的基因。...富集分析-找功能PPI网络:蛋白互作-相关文献7.5 常见图表7.5.1 热图输入数据是数值型矩阵/数据框颜色变化表示数值大小7.5.2 散点图和箱线图散点图向量即可画图可以帮助理解箱线图箱线图输入数据是一个连续型向量...7.5.3 箱线图的应用单个基因在两组之间表达量的差异可视化。分组信息:是一个有重复值的离散型的向量,分组向量的元素和表达矩阵的列是一一对应的。

    19000

    大更新,pandas终于有case_when方法了!

    大家好,我是东哥。 数分小伙伴们都知道,SQL中的case when语句非常好用,尤其在加工变量的时候,可以按照指定的条件的进行赋值,并且结合其他嵌套用法还可以实现非常强大的功能。...: 判断条件:判断条件的布尔值数组不是基于输入series产生的,而是由series所在的dataframe中其他同维度的series加工获取。...这里输入series是score_all,判断条件用的是english。 替换值:替换值使用了lambda隐函数对输入series计算。...这就是case_when非常灵活的原因,判断条件和替换值既可以是固定的值,也可以是自定义的函数,根据自己的需求随意设置。...案例3 case_when只实现区域内的变量加工,其输出结果也可以与其他函数方法结合,产生更多强大的功能。

    41510

    人工智能算法:基于Matlab遗传算法的实现示例

    pwd=lxb1 提取码: lxb1 在Matlab命令行中输入matlabroot可以得到系统中Matlab的根目录,我使用的是Ubuntu系统,输出结果如下图所示: 然后将下载的gatbx文件夹放到...如果RFun是一个在 [1,2] 区间内的标量,则采用线性排序,该标量指定选择的压差; 如果RFun是一个具有两个参数的向量,则: 如果RFun是长度为length(ObjV)的向量,则它包含对没一行的适应度值计算...,比如rws(轮盘选择)、sus(随机遍历采样); FitnV是列向量,包含种群Chrom中个体的适应度值,该适应度值表明每个个体被选择的期望概率; GGAP是一个可选参数,表示代沟部分种群被复制,默认值为...,默认值为1,另外Chrom和SelCh中每个子种群必须具有相同的大小; InsOpt:为一个最多有两个参数的向量: InsOpt(1)是一个标量,表示用子代代替父代的方法: 0 表示均匀选择,子代代替父代使用均匀随机选择...; ObjVCh是对于基于适应度重插入方法的一个可选列向量,包含Chrom中个体的目标值; ObjVSel是一个包含SelCh中个体的目标值的可选参数,如果子代的数量大于重插入种群中的子代数量,则ObjVSel

    3.9K51

    差分进化算法(DE)的详述

    一些概念 变异 遗传算法这里是在编码映射后的基因串长的位点突变 先得到种群中的两个成员向量(自变量可行解)的加权差向量(公式见后,差分体现在这),然后用得到的加权差向量与第三个成员向量相加即产生新的参数向量...,因为变异在生物学中就是多样性的来源,所以这里的变异是为了试出更多的可行解 交叉 也有别于遗传算法,遗传算法是进行多个个体基因串间的重组 这里是在种群中先找到变异向量,然后与另外预先确定的目标向量按照一定的规则...(见后)进行混合,所以交叉一定在变异操作的后面 选择 有别于遗传算法需要进行的轮盘选择 这里的选择是如果当前试验向量的代价函数比目标向量的代价函数低,则试验向量就在下一代中代替目标向量,比较简单粗暴,不像遗传算法需要计算累计概率判断每个基因染色体个体是否会在下一轮中被复制...,这样就可以提高重建效果 2、变异 对于当前的个体 在进入下一代时需要从种群中随机选择三个互不相同的个体进行变异,三个变量相互合作得到新变量 所以种群规模必须 变异公式为 为当前为第 个的个体在进入变异成下一代后的个体...代替 ,否则依然选择 为新一代个体,所以这里就是产生的新变量和原来变量之间的竞争 注意这里的比较只是同一个个体i的目标函数之间的比较,而不是和种群中所有个体比较 值得强调的是当前的种群中的所有成员必须都分别当作目标向量

    3.7K21

    Day07 生信马拉松-数据整理中的R

    5和第9位的字符串 str_sub(x,5,9) 1.4 字符检测 str_detect(x2,"h") # 第一个参数为向量名,第二个是检测的关键词 str_starts(x2,"T") #判断x2...中T开头的字符串,输出逻辑向量 str_ends(x2,"e") #判断x2中e结尾的字符串,输出逻辑向量 1.5 字符串替换 x2 str_replace(x2,"o","A") #每个元素里面只替换第一次出现的目标字符...2.3 mutate,数据框新增一列 test <- mutate(test, new = Sepal.Length * Sepal.Width) #R中的修改必须要赋值,不赋值=没发生 test...### ggplot2 分面相关设置(facet)详解 7.一些实操中的便捷函数 7.1 match() 函数 load("matchtest.Rdata") x y ## 把y的列名正确替换为x里面的...#是b的下标,可以给b取子集,也可以给与b对应的其他向量取子集。

    23900
    领券