我有一个csv文件test.csv
,其中包含一个包含日期的列:
V1
14-01-02 9:10
14-01-02 9:10
14-01-02 9:21
14-01-02 9:34
14-01-02 9:34
14-01-02 9:34
使用readr::read_csv
读取文件会产生NAs
:
V1
1 <NA>
2 <NA>
3 <NA>
4 <NA>
5 <NA>
6 <NA>
Warning message:
9 problems parsing 'test.csv'. See problems(...) for more details.
read.csv
似乎能够像这样加载它没有问题,但它太慢了。实际的表格是322,509 x 45,而不是使用col_type
选项指定每个列类型。
无论如何,它可以将列加载为字符?
答案 0 :(得分:5)
您可以在列表中指定列类型,您只需在其中命名那些您不希望readr尝试识别列类型的列。
read_csv("test.csv", col_types = list(V1 = col_datetime()))
有关详细信息,另请参阅readme on cran。
答案 1 :(得分:1)
从 public void update(Aluno a) {
try {
Aluno aluno = new Aluno();//(Aluno) em.find(Aluno.class, a.getId());
em.getTransaction().begin();
//aluno.setNome(a.getNome());
ReflectionUtil.copyAttributesFromTo(aluno, a);
em.merge(aluno);
em.getTransaction().commit();
} catch (Exception e) {
System.out.println("Error " + e.getLocalizedMessage());
JOptionPane.showMessageDialog(null, e.getLocalizedMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
} finally {
em.close();
}
}
开始说明?read_csv
参数,
如果为“NULL”,则列类型将从前30个开始计算 输入上的行。这很方便(也很快),但不是 强大的。如果插补失败,你需要提供 自己纠正类型。
听起来你可能会被困在
col_type
您还可以尝试使用read_csv("temp.csv", col_types="T") # T for datetimes
阅读第一行,获取课程,然后使用read.csv
阅读整个文件。您需要在事后将字符转换为日期时间。
read_csv