执行ldply时出现as.POSIXct.numeric错误

执行ldply时出现as.POSIXct.numeric错误,r,plyr,R,Plyr,我有一个包含3个数据帧的列表“list.of.df”,我使用ldplyfromplyrpackage,即 df <- ldply(list.of.df) df错误的原因是“账单提交”列在前两个列表元素(即数据帧)中有日期,但在最后一个数据帧中有数字列。ldply正在尝试使用as.POSIX函数族将数值隐式转换为POSIX日期值,为此,需要显式指定原点。请参见下面的解决方案: 确保要合并的每个数据帧中的所有数据类型都相同或相似。您可以使用下面的代码使用Lappy在列表中循环实现这一点: l

我有一个包含3个数据帧的列表“list.of.df”,我使用
ldply
from
plyr
package,即

df <- ldply(list.of.df)

df错误的原因是“账单提交”列在前两个列表元素(即数据帧)中有日期,但在最后一个数据帧中有数字列。ldply正在尝试使用as.POSIX函数族将数值隐式转换为POSIX日期值,为此,需要显式指定原点。请参见下面的解决方案:

  • 确保要合并的每个数据帧中的所有数据类型都相同或相似。您可以使用下面的代码使用Lappy在列表中循环实现这一点:

    load(list.of.df)
    b <- lapply(list.of.df, function(x){
                      x[, "BILLING SUBMISSION"] <- as.POSIXct(x[, "BILLING SUBMISSION"], origin = "1970-01-01"); return(x)})
    df <- ldply(b)
    
    load(列表of.df)
    
    b出现错误的原因是,“账单提交”列在前两个列表元素(即数据帧)中有日期,但在最后一个数据帧中有数字列。ldply正在尝试使用as.POSIX函数族将数值隐式转换为POSIX日期值,为此,需要显式指定原点。请参见下面的解决方案:

  • 确保要合并的每个数据帧中的所有数据类型都相同或相似。您可以使用下面的代码使用Lappy在列表中循环实现这一点:

    load(list.of.df)
    b <- lapply(list.of.df, function(x){
                      x[, "BILLING SUBMISSION"] <- as.POSIXct(x[, "BILLING SUBMISSION"], origin = "1970-01-01"); return(x)})
    df <- ldply(b)
    
    load(列表of.df)
    
    b出现错误的原因是,“账单提交”列在前两个列表元素(即数据帧)中有日期,但在最后一个数据帧中有数字列。ldply正在尝试使用as.POSIX函数族将数值隐式转换为POSIX日期值,为此,需要显式指定原点。请参见下面的解决方案:

  • 确保要合并的每个数据帧中的所有数据类型都相同或相似。您可以使用下面的代码使用Lappy在列表中循环实现这一点:

    load(list.of.df)
    b <- lapply(list.of.df, function(x){
                      x[, "BILLING SUBMISSION"] <- as.POSIXct(x[, "BILLING SUBMISSION"], origin = "1970-01-01"); return(x)})
    df <- ldply(b)
    
    load(列表of.df)
    
    b出现错误的原因是,“账单提交”列在前两个列表元素(即数据帧)中有日期,但在最后一个数据帧中有数字列。ldply正在尝试使用as.POSIX函数族将数值隐式转换为POSIX日期值,为此,需要显式指定原点。请参见下面的解决方案:

  • 确保要合并的每个数据帧中的所有数据类型都相同或相似。您可以使用下面的代码使用Lappy在列表中循环实现这一点:

    load(list.of.df)
    b <- lapply(list.of.df, function(x){
                      x[, "BILLING SUBMISSION"] <- as.POSIXct(x[, "BILLING SUBMISSION"], origin = "1970-01-01"); return(x)})
    df <- ldply(b)
    
    load(列表of.df)
    

    b当我尝试
    dget
    您的文件时,我得到一个错误:
    解析错误(file=file,keep.source=keep.source):第3256行的解析器中的多字节字符无效。在编辑器中打开文本时也是如此。这很奇怪。已替换为要加载的Rdata文件。感谢@Pascal的提醒。您可以用一个简单得多的示例来复制您的问题-例如:
    list.of.df当我尝试
    dget
    您的文件时,我收到一个错误:
    解析错误(file=file,keep.source=keep.source):第3256行解析器中的多字节字符无效。在编辑器中打开文本时也是如此。这很奇怪。已替换为要加载的Rdata文件。感谢@Pascal的提醒。您可以用一个简单得多的示例来复制您的问题-例如:
    list.of.df当我尝试
    dget
    您的文件时,我收到一个错误:
    解析错误(file=file,keep.source=keep.source):第3256行解析器中的多字节字符无效。在编辑器中打开文本时也是如此。这很奇怪。已替换为要加载的Rdata文件。感谢@Pascal的提醒。您可以用一个简单得多的示例来复制您的问题-例如:
    list.of.df当我尝试
    dget
    您的文件时,我收到一个错误:
    解析错误(file=file,keep.source=keep.source):第3256行解析器中的多字节字符无效。在编辑器中打开文本时也是如此。这很奇怪。已替换为要加载的Rdata文件。谢谢@Pascal的提醒。你可以用一个简单得多的例子来复制你的问题-例如:
    list.of.df@Ricky-这个答案应该被接受-这肯定是问题所在。@最近的邮件它肯定有效,我对它投了更高的票。在接受作为最终答案之前,我将再等待一段时间,看看是否有一种更通用的方法不需要我识别字段名“账单提交”。我得到的数据经常发生变化(我无法控制多个Excel文件,而且这些文件有一个改变字段名称/内容的坏习惯),因此我最初的想法是将一个参数传递给ldply,以便自己进行排序。@Ricky-我怀疑,如果没有大量额外的检查代码,这是否真的可能。最终,无论生成数据的过程是什么,都应该检查每个字段的格式是否正确。@Ricky-我同意最近的邮件中的说法,即您必须检查生成数据的过程,并可能发布一个问题以获得解决该问题的答案。如果不知道未来数据会发生什么变化,就不可能尝试概括上述答案。这就是为什么它直接回答了上面提出的问题。@Ricky-这个答案应该被接受-这绝对是个问题。@Lattermail它确实有效,我已经投了更高的票。在接受作为最终答案之前,我将再等待一段时间,看看是否有一种更通用的方法不需要我识别字段名“账单提交”。我得到的数据经常发生变化(我无法控制多个Excel文件,而且这些文件有更改字段名称/内容的坏习惯),因此我最初的想法是将一个参数传递给ldply,以便自己进行排序。@Ricky-我怀疑这是否真的可能