【发布时间】:2019-04-07 02:38:07
【问题描述】:
我是 R 语言的新手,目前我很难理解以下内容:
我正在加载一个 CSV 文件。此 CSV 文件包含两列。第一列是唯一 ID。第二列名为“内容”。内容列基本上是来自特定 URL 的所有可读文本。
如果我打印第二列第一行的内容,我会得到以下输出。
Text[1:1,2:2]
[1] Autoservice Hofra Home \xa0 Home Contact \xa0 Autoservice Hofra \xa0 Home Contact Autoservice Hofra Welkom op onze website \xa0 \xa0LASSA BANDEN DEALER \xa0 Wanneer is mijn auto toe aan een onderhouds inspectie Iedere auto heeft een instructieboekje Dat ligt meestal in het dashboardkastje van uw auto In dat boekje staat hoe en wanneer u de auto onderhoudt Autoservice Hofra Albert Einsteinweg 12 6045 GX Roermond Tel 0654965305 Kleine en grote beurt Bij Autoservice Hofra kun je terecht voor een grote en kleine beurt voor de zomer en winter checks maar ook airco onderhoud Zo zorgen we dat je niet alleen veilig en comfortabel de weg op gaat maar ook nog eens extra lang plezier hebt van je auto \xa0 We vervangen motorolie en het oliefilter vullen de ruitenvloeistof koelvloeistof en remvloeistof bij en houden rekening met de milieutoeslag Een groot deel van de checks die bij een APK worden gedaan komen ook bij de grote beurt aan bod Het is daarom voordelig om deze te combineren De motormanagement van de auto wordt zorgvuldig uitgelezen met diagnose apparatuur waardoor storingen en andere meldingen aan het licht komen \xa0 \xa0 \xa0 Airco Check \xa0Houdt de airco uw auto op de juiste temperatuur Ontwasemt de airco de autoruit slecht En blaast hij nog frisse lucht Doe de Airco Check Ook als het geen zomer is Wij voeren alle voorkomende onderhoudswerkzaamheden uit aan uw auto voor een zeer scherpe prijs Bij een duurdere reparatie wordt er te allen tijde overleg gepleegd met u Daarnaast zijn we in het bezit van de juiste kennis en gereedschappen om alle voorkomende reparaties uit te voeren \xa0\xa0Laat de werkzaamheden uitvoeren wanneer u dat uitkomt Home \xa0 \xa0 Contact
5432 Levels: ...
如果我打印第二列第一行的类型,我会得到类型 integer
typeof(Text[1:1,2:2])
[1] "integer"
有人可以解释一下为什么特定列在包含字符时具有“整数”类型。我也对 '5432 levels: ...' 部分感到困惑。 R中的“级别”是什么意思?
最后,我要做的是将“内容”列的每一行转换为字符,以便我可以应用例如删除所有长度为
SText <- subset(Text, nchar(as.character(content)) > 200)
现在我得到错误:
Error in type(Text[1:1, 2:2]) : could not find function "type"
我该如何解决这个问题?任何帮助和信息将不胜感激!
【问题讨论】:
-
该列已作为因子而不是字符导入。您可以通过在
read.csv()函数中指定 stringsAsFactors 参数来明确告诉 R 不要将字符列视为因素。整数类型很可能是因为该列被存储为因子。 -
如果您是 R 新手,请开始使用
class()而不是typeof()。后者不会告诉您对象的行为方式。 -
这里有一些关于因素的更多背景知识,我花了一段时间才理解。在许多情况下,使用
stringsAsFactors = FALSE会更简单。在未来,因素可能非常有用,例如,如果您想对绘图的类别进行排序(而不是按字母顺序)。 stat.berkeley.edu/~s133/factors.html -
在此处添加其他答案。您有时也可以通过在导入数据时指定
na.strings来避免这种情况。