Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中向JSON添加键和值_Json_R_Reactjs_Nvd3.js_Jsonlite - Fatal编程技术网

在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]}