col被命名为id,我需要根据_POS_
id
*ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_196
*ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_204
*ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_210
*ID_166920_C1460071_12.0_No_definition_line_found_POS_4529
*ID_167502_C1460265_46.0_No_definition_line_found_POS_720
*ID_167502_C1460265_46.0_No_definition_line_found_POS_727
*ID_167502_C1460265_46.0_No_definition_line_found_POS_734
*ID_167502_C1460265_46.0_No_definition_line_found_POS_2179
*ID_23929_C933331_63.0_No_definition_line_found_POS_121
*ID_23929_C933331_63.0_No_definition_line_found_POS_131
这就是我所做的
library(tidyr)
newdata <-seperate("AberdartXMatrixnewalldata.csv",id,into=c("id","POS"),sep="_POS_")
Error in seperate("AberdartXMatrixnewalldata.csv", id, into = c("id", :
could not find function "seperate"
newdata <-separate("AberdartXMatrixnewalldata.csv",id,into=c("id","POS"),sep="_POS_")
UseMethod(“separate_”)中的错误:没有适用的方法 'separate_'应用于“character”类的对象
我不知道如何处理此错误。
感谢您的评论:以下是结果 - &gt;
@Elin感谢您的建议。当我应用评论时,这就是我得到的:STR( “AberdartXMatrixnewalldata.csv”) chr“AberdartXMatrixnewalldata.csv”
AberdartXMatrixnewalldata.csv as.data.frame( “组/牧场/ SAILA / SNP_disco_AberdartXMatrix / AberdartXMatrixnewalldata.csv”) newdata&lt; - tidyr :: separate(newdata,col = id,into =(“v1.1”,“v1.2”),sep =“ POS ”)
错误:'newdata&lt; - tidyr :: separate(newdata,col = id,into =(“v1.1”,“ newdata&lt; - tidyr :: separate(newdata,col = id,into =(“v1.1”,“v1.2”),sep =“ POS ”)
错误:'newdata&lt; - tidyr :: separate(newdata,col = id,into =(“v1.1”,“ newdata&lt; - tidyr :: separate(newdata,col = id,into = c(“v1.1”,“v1.2”),sep =“ POS ”)
tidyr :: separate中的错误(newdata,col = id,into = c(“v1.1”,“v1.2”),: 找不到对象'newdata'
newdata <- tidyr::separate(AberdartXMatrixnewalldata, col =id, into= c("v1.1", "v1.2"), sep = "_POS_")
tidyr :: separate中的错误(AberdartXMatrixnewalldata,col = id,into = c(“v1.1”,: 找不到对象'AberdartXMatrixnewalldata'
newdata <- tidyr::separate(AberdartXMatrixnewalldata.csv, col =id, into= c("v1.1", "v1.2"), sep = "_POS_")
eval_tidy中的错误(enquo(var),var_env):找不到对象'id'
答案 0 :(得分:0)
虽然您可以在一行中完成这项任务,但如果您逐步采取措施,那么您将会变得更好并更好地了解正在发生的事情。
您在代码中遇到的一个问题是,tidyr单独的函数适用于数据帧,但您提供的是字符向量形式的数据,这就是该消息所说的内容。
我建议您首先创建一个数据框。由于看起来你有一个CSV文件,你可以使用基本R read.csv()函数。
newdata <- read.csv("AberdartXMatrixnewalldata.csv", StringsAsFactors = FALSE)
如果您已经创建了一个数据框,但恰好有这个名称表明它是一个csv文件,然后id是一个与数据框隔离的字符变量,则将其转回数据框。 / p>
AberdartXMatrixnewalldata.csv <- as.data.frame(AberdartXMatrixnewalldata.csv)
请注意,您可能需要在文件中添加一个路径。
然后您可以选择进行分离,但我建议安装tidyr并使用其separate()
功能。
newdata <- tidyr::separate(newdata, col =id, into= ("v1.1", "v1.2" ), sep = "_POS_")
这会保留id列,但会创建两个新列。如果要删除它,请使用删除的选项。
答案 1 :(得分:0)
我试过这个
newdata&lt; - tidyr :: separate(AberdartXMatrixnewalldata.csv,col = objectid,into = c(&#34; id&#34;,&#34; POS&#34;),sep =&#34; POS &#34)
错误:var
必须评估为单个数字或列名称,而不是列表
newdata&lt; - tidyr :: separate(AberdartXMatrixnewalldata.csv,col =&#34; objectid&#34;,into = c(&#34; id&#34;,&#34; POS&#34;), sep =&#34; POS &#34;) 错误:字符串必须与列名匹配。未知栏目:objectid 头(newdata) ID 1 * ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_196 2 * ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_204 3 * ID_131604_scaffold109166_Locus_191120_0_37.5_LINEAR_No_definition_line_found_POS_210 4 * ID_166920_C1460071_12.0_No_definition_line_found_POS_4529 5 * ID_167502_C1460265_46.0_No_definition_line_found_POS_720 6 * ID_167502_C1460265_46.0_No_definition_line_found_POS_727 aa.count ab.count bb.count NC D1.10 B3.7 D2.15交叉 1 43 17 0 33否错FALSE FALSE 2 56 3 0 34否错FALSE 3 1 25 33 34否则为真D2.15 4 48 5 4 36否则为假 5 30 17 0 46是真假D1.10 6 26 22 3 42是的错误D1.10