在R中查找信息不完整的.txt文件
我有一个.txt文件文件夹。每个.txt文件中的一列称为“行”。(很抱歉,这让人困惑。)“行”列包含从A到H的值 我试图写一些东西,我可以运行每个.txt文件来检查文件中是否存在从A到H的所有值。我希望这个函数告诉我哪个.txt文件不完整(缺少一些值)。我不必知道它遗漏了什么。。。我只需要知道哪个.txt文件没有从A到H的所有值 有办法做到这一点吗 先谢谢你~ 编辑 这是我正在处理的数据示例。这来自数据帧列表中的第一个数据帧。这是在我已经将每个.txt文件制作成一个数据帧之后在R中查找信息不完整的.txt文件,r,missing-data,R,Missing Data,我有一个.txt文件文件夹。每个.txt文件中的一列称为“行”。(很抱歉,这让人困惑。)“行”列包含从A到H的值 我试图写一些东西,我可以运行每个.txt文件来检查文件中是否存在从A到H的所有值。我希望这个函数告诉我哪个.txt文件不完整(缺少一些值)。我不必知道它遗漏了什么。。。我只需要知道哪个.txt文件没有从A到H的所有值 有办法做到这一点吗 先谢谢你~ 编辑 这是我正在处理的数据示例。这来自数据帧列表中的第一个数据帧。这是在我已经将每个.txt文件制作成一个数据帧之后 row
row col TOF EXT time green yellow red worm call50 norm.red stage
1 A 1 20 20 0 2 0 0 1.922668e-02 bubble 0.000000000 L1
2 A 1 32 45 358 6 6 3 9.637690e-01 worm 0.093750000 L1
3 A 1 24 30 1185 6 1 0 2.246214e-02 bubble 0.000000000 L1
4 A 1 139 230 2433 39 49 31 1.000000e+00 worm 0.223021583 L2
5 A 1 27 23 2433 3 4 2 8.262885e-01 worm 0.074074074 L1
6 A 1 24 25 3946 3 4 3 9.077824e-01 worm 0.125000000 L1
7 A 2 40 55 0 30 46 29 1.000000e+00 worm 0.725000000 L1
8 A 2 31 34 2793 3 2 0 1.100591e-01 bubble 0.000000000 L1
9 A 3 37 42 0 8 9 5 9.996614e-01 worm 0.135135135 L1
10 A 3 89 172 562 28 38 20 1.000000e+00 worm 0.224719101 L1
...
648 B 1 124 160 0 11 8 4 9.999695e-01 worm 0.032258065 L2
649 B 1 125 211 47 13 11 4 9.999610e-01 worm 0.032000000 L2
650 B 1 65 112 141 6 4 3 9.404593e-01 worm 0.046153846 L1
尝试:
更新
更好的方法是:
lapply(ldf, function(x) all(LETTERS[1:8] %in% x$row) & all(1:8 %in% x$col))
$file1.txt
[1] TRUE
$file2.txt
[1] FALSE
正如你们所知,编辑比删除一个不符合你们要求的问题并重新提问更受欢迎。我确实编辑了它,但它让人们更加困惑。所以我认为最好完全重新表述我的问题。谢谢你的建议。仍然是相同的答案,为什么不在读入R后检查data.frame的维度呢。那些缺少从A到H的任何值的文件不具有缩减的维度吗?我想是96孔板的数据。好吧,你也需要编辑这个问题,因为我们现在只有一个作业,但你没有我们可以给你反馈的实际代码。对于data.frames列表,你可以使用
lappy(list_df,function(x)nrow(x)!=96)
这太棒了。非常感谢你!还有一个问题。。有没有一种方法可以告诉我与哪个数据框对应的.txt文件的名称,哪个数据框为“真”?你说你刚刚有一个文本文件文件夹。。如何解决您的问题?当您将txt文件作为数据帧列表加载时,您可以使用文件夹中文件的名称命名/标记列表条目。例如,names(ldf)抱歉,我一直在添加问题。。。但是,有没有办法测试一个数据帧的“行”列中是否有所有的a~H,以及“列”列中是否有所有的1~12???@rawr对不起,我的问题让人困惑。。我将此应用于我使用文件夹中的文本文件创建的数据帧列表。。如果这更有意义?因此,这将测试列表中的每个数据帧
$file1.txt
[1] FALSE
$file2.txt
[1] TRUE
lapply(ldf, function(x) all(LETTERS[1:8] %in% x$row) & all(1:8 %in% x$col))
$file1.txt
[1] TRUE
$file2.txt
[1] FALSE