我有一个来自两个不同小组的测试结果列表,我已经带入R,我对R的经验很少。我目前的数据框看起来像这样:
Samples <- c("A","B","C","D","E")
Test1 <- c("1","","300","NA","100, 2")
Test2 <- c("2","5000","3, 4000, 5","3","")
df <- data.frame(Samples, Test1, Test2)
我想(1)用多个逗号分隔的值将单元格分成不同的列,(2)修复测试的单位以使它们匹配 - 此处的Test1有时会在当Test2报告偏离1000倍时,缩小了100倍,并且(3)将得到的值平均回到一列。
我开始这样:
#Replace blank cells with NA
df[df==""] <- "NA"
#Split cells with commas in them
split2 <- strsplit(df$Test2, split = "\\,")
并且很快陷入困境。如何将列表创建回某种数据帧?我不知道在我的巨型数据集专栏中有多少逗号分隔的字符串。大多数行只有一个结果,但我知道有几个有两个,至少有一个有大约八个。我试图建立一个新的数据帧(下面)并不顺利。
do.call(rbind, lapply(split2))
Error in match.fun(FUN) : argument "FUN" is missing, with no default
data.frame(t(sapply(split2,c)))
X1 X2 X3 X4 X5
1 2 5000 3, 4000, 5 3
我确定有一些方法可以在我仍然使用列表的同时做我想要做的事情,而且几乎可以肯定某种方式使用函数/ for循环。任何建议都将不胜感激。
最后,我希望数据看起来像这样:
Samples Test1 Test2
1 A 1 2
2 B NA 5
3 C 3 4
4 D NA 3
5 E 1.5 NA
答案 0 :(得分:0)
我在这种情况下执行以下操作:我创建数据并像您一样计算 var frm = Application.OpenForms.Cast<Form>().Where(x => x.Name == "Form1").FirstOrDefault();
if (null != frm)
{
frm.Hide();
}
(除了我在创建data.frame时使用split2
。)然后继续这样:
stringsAsFactors=FALSE