" NA"在JSON文件中转换为NA逻辑

时间:2015-05-05 00:39:08

标签: json r dataframe jsonlite

我有"[{\"count\":1,\"subject\":{\"name\":\"Namibia\",\"alpha2\":\"NA\"}}]" 个包含国家/地区数据的文件。其中一个文件包含以下数据:

json

我有以下代码使用data.frame包将jsonlite转换为df = as.data.frame(fromJSON(jsonfile), flatten=TRUE))

data.frame

我期待一个带有数字和字符串的count subject.name subject.alpha2 1 Namibia "NA"

NA

相反,NA alpha2代码会自动转换为str(df) $ count : int 1 $ subject.name : chr "Namibia" $ subject.alpha2: logi NA 逻辑,这就是我得到的:

class TestArrays {
    public static void main(String [] args) {
        int [] index = new int[4];
        index[0] = 1;
        index[1] = 3;
        index[2] = 0;
        index[3] = 2;
        String [] islands = new String[4];
        islands[0] = “Bermuda”;
        islands[1] = “Fiji”;
        islands[2] = “Azores”;
        islands[3] = “Cozumel”;
        int y = 0;
        int ref;
        while (y < 4) {
            ref = index[y];
            System.out.print(“island = “);
            System.out.println(islands[ref]);
            y = y + 1;
        }
    }
}

我希望alpha2是一个字符串,而不是逻辑。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

fromJSON的特定实现(并且有三个不同的包具有该函数的名称)有一个simplifyVector参数,它似乎阻止了corecion:

flatten

我试着看看这个选项是否适用于> str( fromJSON(test, simplifyVector=FALSE, flatten=TRUE) ) List of 1 $ :List of 2 ..$ count : int 1 ..$ subject:List of 2 .. ..$ name : chr "Namibia" .. ..$ alpha2: chr "NA" 参数,但很失望:

{{1}}

答案 1 :(得分:0)

接受的答案不能解决我的用例。 但是,rjson::fromJSON自然地做到了这一点,令我惊讶的是,我的数据处理速度快了10倍。