【问题标题】:Why does R print 'levels' of my csv-file, and how do I get rid of it? [duplicate]为什么 R 打印我的 csv 文件的“级别”,我该如何摆脱它? [复制]
【发布时间】:2019-02-18 20:39:06
【问题描述】:

我有一个包含大量文本的 csv 文件。有 5 列(问题)和 3 行(响应)。当我尝试索引特定单元格/响应时,R 会打印出该单元格,但还会打印该列中的附加值,显示“3 个级别:...”。

我认为它与其他 csv 级别的问题不同,因为它们涉及数字/整数,而这涉及字符串。

我的 csv 看起来像这样(带有sep = ";"):

Q1;Q2;Q3;Q4;Q5
Ik vind het niet helemaal netjes om je sociale huurwoning te verhuren, aangezien je dan mensen passeert die al lang op de wachtrij staan of er meer recht op hebben.;Mensen die netjes in de wachtrij staan worden op deze manier gepasseerd en de woningmarkt raakt dan nog meer op slot.;Dat lijken me mensen die vooral uit zijn op eigen gewin en niet echt denken aan het grotere collectief.;Deze personen snap ik al wat meer, omdat je niet altijd een keuze hebt met de huidige woningmarkt. Het is natuurlijk niet helemaal netjes maar ik kan er wel begrip voor opbrengen.;Ik vind het op zich wel terecht maar zou het zelf niet doen omdat het een beetje klikkerig overkomt. Als ik persoonlijk overlast zou ervaren van een onderhuurder zou ik eerder overgaan tot melding.
Ja dat vind ik heel goed omdat mensen die al heel lang op zoek zijn ook een huisje kunnen krijgen.;Mensen die al lang op zoek zijn vinden ook een huisje maar mensen die in de wachtrij staan moeten wel iets langer wachten.;Ik snap het opzich wel want dan kun je toch een centje bijverdienen.;Deze snap ik heel erg want het is vandaag de dag enorm lastig om een beetje betaalbare woning te vinden en op deze manier kun je toch nog ergens terecht.;Ik vind het niet helemaal eerlijk en als je geen last hebt van die mensen moet je ze gewoon lekker laten zitten.
Ik vind het iets begrijpelijks. Als je in de sociale huur zit, geeft het al aan dat je een klein inkomen hebt. Het is fijn om de woning dan achter de hand te hebben als extra inkomen en uitvalsbasis in een stad als Amsterdam. Ook de huur illegaal met iemand delen, waardoor je beide geld bespaard, is een logisch gevolg van de krapte op de huizenmarkt. Ondanks dat het iets illegaals is kan ik er dus begrip voor opbrengen.;Een van de gevolgen is een vermindering van de maandelijkse lasten. Dit is uiteraard een voordeel voor de onderverhuurder. Omdat het daarnaast gaat om een huurwoning uit de sociale woningmarkt zijn de kosten voor beide partijen nog lager dan als het om een vrijesector woning zou gaan. Tegelijkertijd is een mogelijk gevolg natuurlijk dat je onderzocht kan worden door de gemeente, en dat er juridische gevolgen zijn als blijkt dat er illegaal wordt onderverhuurd.;Enerzijds vind ik het profiteurs, anderzijds begrijp ik ze wel.;Hen begrijp ik volledig. Het is ontzettend moeilijk om een woning te vinden in Amsterdam voor studenten, woningdelers en mensen met een laag inkomen, dus bijna elke woning die hen wordt aangeboden, zullen ze accepteren. Je hebt weinig keus.;Ook dat begrijp ik, zeker als het gaat om onderverhuurders die onderhuurders uitbuiten, zoals huisjesmelkers. In zo’n extreem geval zou ik het wellicht nog melden. Maar als er geen problemen worden ondervonden door derde partijen vind ik het ook een beetje klikken. Vooral omdat de onderhuurders weer op zoek zullen moeten naar een nieuwe woning en ze niet voor niets onderhuurden.

当我尝试索引我使用的第一个问题的第一个响应时

dummyText <- read.csv("dummyText.csv", sep = ";")
dummyText[1, 1]

然后 R 将打印:

> dummyText[1, 1]
[1] Ik vind het niet helemaal netjes om je sociale huurwoning te verhuren, aangezien je dan mensen passeert die al lang op de wachtrij staan of er meer recht op hebben.
3 Levels: Ik vind het iets begrijpelijks. Als je in de sociale huur zit, geeft het al aan dat je een klein inkomen hebt. Het is fijn om de woning dan achter de hand te hebben als extra inkomen en uitvalsbasis in een stad als Amsterdam. Ook de huur illegaal met iemand delen, waardoor je beide geld bespaard, is een logisch gevolg van de krapte op de huizenmarkt. Ondanks dat het iets illegaals is kan ik er dus begrip voor opbrengen. ...

如何让 R 停止打印级别,以便我只获取单元格值?

【问题讨论】:

  • 可能在读取 csv 时使用stringsAsFactors = FALSE
  • droplevels(dummyText[1, 1])?
  • 感谢您引起我的注意,但这些是不同的问题(考虑到它们都是关于整数的,而这是关于字符串的)。 @boski 和@JBGruber 提出的stringsAsFactors-solutions 解决了我的问题。谢谢!

标签: r csv


【解决方案1】:

这是从.csv 文件中读取文本时的常见问题。默认情况下,标准基本函数将所有文本转换为因子 (here is why it made sense at some point)。我知道至少三个(简短而简单的)解决方案:

dummyText <- read.csv("dummyText.csv", sep = ";", stringsAsFactors = FALSE)

dummyText <- readr::read_csv2("dummyText.csv")

dummyText <- rio::import("dummyText.csv")

就我个人而言,我更喜欢rio,因为import 函数对大多数数据类型都有非常合理的默认值(它可以导入许多格式,例如 xlsx、STATA 和 SPSS 文件)。但这只是一个非常个人的意见。

【讨论】:

  • 最好全局设置options('stringsAsFactors'=FALSE)
  • 如果你在全局范围内指的是脚本的前几行,我同意这是一个很好的做法。如果你打算把它放在你的.Renviron 中,所以它是在启动时设置的,我不同意。在这种情况下,您的脚本将无法在您自己的机器之外的其他机器上正常运行。
  • JBGruber,哲学在哪种方式上有所不同。但无论哪种方式,全局设置都很好。
猜你喜欢
  • 2019-01-12
  • 2019-06-07
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多