在R中向JSON添加键和值
我使用了在R中向JSON添加键和值,json,r,reactjs,nvd3.js,jsonlite,Json,R,Reactjs,Nvd3.js,Jsonlite,我使用了jsonlitelibrary:json\u pca\u data我同意您更改底层数据的逻辑。第一个问题是,您将使用单个列值替换列值,而不是附加列值 pca_table$PC1_percent = c(pca_table$PC1_percent, percent[1]) 将percent的第一个值附加到PC1\u percent列的末尾。不幸的是,这可能会导致错误(例如,替换有3行,数据有2行)或产生其他不良影响 了解是要向所有列追加值,还是只想扩展这两行,会很有帮助。对于这两种方法,
jsonlite
library:json\u pca\u data我同意您更改底层数据的逻辑。第一个问题是,您将使用单个列值替换列值,而不是附加列值
pca_table$PC1_percent = c(pca_table$PC1_percent, percent[1])
将percent
的第一个值附加到PC1\u percent
列的末尾。不幸的是,这可能会导致错误(例如,替换有3行,数据有2行)或产生其他不良影响
了解是要向所有列追加值,还是只想扩展这两行,会很有帮助。对于这两种方法,我的假数据:
tbl <- data.frame(pc1=1:2, pc2=11:12, othr=51)
tbl
# pc1 pc2 othr
# 1 1 11 51
# 2 2 12 51
(1) 不管怎样,我建议您将其替换为,然后将其添加到基础数据中,然后再转换回JSON,并尝试将其添加到文本JSON表示中。问题是我不知道如何将其添加到初始数据集中,这样就不会对数组进行扩展。我只需要创建新的列,这就是我正在做的,既不附加到已经存在的列,也不替换。我喜欢上一个只扩展一些列的方法。很好。
pca_table$PC1_percent = percent[1]
pca_table$PC2_percent = percent[2]
"PC1_percent" : [
0.3676,
0.3676,
0.3676,
0.3676,
0.3676,
0.3676,
0.3676,
0.3676,
0.3676
],
"PC2_percent" : [
0.2331,
0.2331,
0.2331,
0.2331,
0.2331,
0.2331,
0.2331,
0.2331,
0.2331
]
"PC1_percent" : 0.3676, "PC2_percent" : 0.2331
pca_table$PC1_percent = c(pca_table$PC1_percent, percent[1])
tbl <- data.frame(pc1=1:2, pc2=11:12, othr=51)
tbl
# pc1 pc2 othr
# 1 1 11 51
# 2 2 12 51
newrow <- data.frame(pc1=3, pc2=13, othr=NA)
tbl2 <- rbind(tbl, newrow)
tbl2
# pc1 pc2 othr
# 1 1 11 51
# 2 2 12 51
# 3 3 13 NA
jsonlite::toJSON(tbl2, dataframe="columns")
# {"pc1":[1,2,3],"pc2":[11,12,13],"othr":[51,51,"NA"]}
lst <- as.list(tbl)
lst$pc1 <- c(lst$pc1, 98)
lst$pc2 <- c(lst$pc2, 99)
jsonlite::toJSON(lst)
# {"pc1":[1,2,98],"pc2":[11,12,99],"othr":[51,51]}