我有"[{\"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是一个字符串,而不是逻辑。我该如何解决这个问题?
答案 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倍。