【发布时间】:2021-10-29 17:26:42
【问题描述】:
我有两个不同维度的数据矩阵存储为 R 中的对象(我在 Windows 10 中使用 Rstudio 和 R v4.0.2):
m1 = 1 列 x 44 行(这是一个没有空格的名称列表)。
m2 = 500,000 列 x 164 行(其中包含一个字符串,第一行是名称列表)。
我想检查在 m2 中找到了多少(以及哪些)m1 行(这意味着它将在 0 到 44 之间的任意位置)。最终目标是我有 4000 个不同的矩阵可以代替 m2 的位置,我需要查看所有 m2 中缺失条目(在 m1 中找到)的程度(即,我正在查看缺失数据的程度这 44 个名字中的一个)。
我仍然是 R 的初学者,如果我的描述有点不妥,敬请见谅。
我尝试存储每个矩阵,保存为 CSV 文件,如下所示:
m1 <- read.csv("names-file.csv")
m2 <- read.csv("data-file.csv")
并尝试使用prodlim 包中的row.match 函数,并运行row.match(m1, m2) 但只得到数值。我希望看到在 m2(第一列)中找到了多少来自 m1(第一列)的名称,这些值是什么,以及百分比是多少(44 个中的 x 个)。
例如: m1 =
Tom
Harry
Cindy
Megan
Jack
`
m2 =
Tom XXXXXXXXXXXX----XXXXXXXX
Stephanie XXXXXXXXXXXXXXXX----XXXX
Megan XXXXXXXXXXXXXXXXXXXXXXXX
Ryan XXXXXXXXXXXXXXXXXXXXXX-X
David XXXXXX---XXXXXXXXXXXXXXX
Josh XXXXXXXXXXXXXXXXXXXXXXXX
在 m2 矩阵中,每个名称都是第 1 列,每个后续 X(表示 A、T、C 或 G)是后续列(因此有些列有 A、T、C 或G,或“-”)。我正在寻找编写一个代码,该代码将查看 m1 中有多少名称并在 m2 中找到(相反,m2 中丢失了多少数据百分比)。在这种情况下,所需的输出将是:
2
Tom
Megan
60%
这是我使用dput() 的特定数据文件(如果我正确使用dput(),请告诉我):
米1:
structure(list(V1 = c("Taxon1", "Taxon2", "Taxon3", "Taxon4",
"Taxon5", "Taxon6", "Taxon7", "Taxon8")), class = "data.frame", row.names = c(NA,
-8L))
平方米:
structure(list(V1 = c("Taxon1", "Taxon3", "Taxon4", "Taxon6",
"Taxon7", "Taxon9", "Taxon10", "Taxon11", "Taxon12", "Taxon13",
"Taxon14", "Taxon15", "Taxon16", "Taxon17", "Taxon18", "Taxon19",
"Taxon20", "Taxon21", "Taxon22", "Taxon23", "Taxon24", "Taxon25",
"Taxon26", "Taxon27", "Taxon28", "Taxon29", "Taxon30"), V2 = c("A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "C", "C", "C", "C", "C", "C", "C"
), V3 = c("G", "G", "G", "G", "G", "C", "C", "G", "G", "G", "G",
"G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G",
"G", "G", "G"), V4 = c("C", "C", "C", "C", "C", "T", "G", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C"), V5 = c("T", "T", "G", "T", "G",
"G", "G", "T", "T", "T", "T", "T", "T", "T", "T", "T", "T", "T",
"T", "T", "T", "T", "T", "T", "T", "T", "T"), V6 = c("G", "G",
"C", "G", "C", "C", "C", "G", "G", "G", "G", "G", "G", "G", "G",
"G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G"),
V7 = c("C", "C", "A", "C", "A", "A", "A", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "G", "G", "G", "G", "G", "G",
"G", "G", "G", "G", "G"), V8 = c("T", "T", "A", "T", "A",
"A", "A", "T", "T", "T", "T", "T", "T", "T", "T", "T", "T",
"T", "T", "T", "T", "T", "T", "T", "T", "T", "T"), V9 = c("A",
"A", "A", "A", "A", "T", "T", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "T", "T", "T", "T", "T", "T", "T", "T",
"T", "T")), class = "data.frame", row.names = c(NA, -27L))
谢谢!
【问题讨论】:
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
我刚刚添加了更多信息;这足以帮助澄清我的要求吗?如果这还不够,我深表歉意。我会添加更多!我正在使用 Rstudio 和 R v4.0.2
-
@Justin 使用
dput()提供您的数据框样本。 -
@Shibaprasadb 我做对了吗?这是我第一次使用
dput() -
是的!现在好了。
标签: r dataframe csv datamatrix