我有一个颜色和ID的数据框,并希望将它们变成颜色为name
且ID为value
的列表
colors <- data.frame(color = c('Gold', 'Green', 'Red'), id = c('1','2','3'))
这是数据帧的一小部分,因为有更多的行。
我正在尝试使结果与您编写时的输出相同:
colorlist <- list('Gold' = 1, 'Green' = 2, 'Red' = 3)
答案 0 :(得分:5)
setNames(as.list(as.character(colors$id)), nm = colors$color)
$Gold
[1] "1"
$Green
[1] "2"
$Red
[1] "3"
答案 1 :(得分:5)
带分割:
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("JSON", s);
try {
JSONObject jsonObject = new JSONObject(s);
String results = jsonObject.getString("results");
Log.i("results", results);
JSONArray arr = new JSONArray(results);
for (int i = 0; i < arr.length(); i++) {
mQuestion = arr.getJSONObject(3).getString("question");
Log.i("Question", mQuestion);
}
} catch (Exception e) {
e.printStackTrace();
}
}
如果级别有问题,只需将id转换为字符:
colorlist = split(x=colors$id, f=colors$color)
答案 2 :(得分:2)
尝试:
colors <- data.frame(color = c('Red', 'Green', 'Gold'), id = c('1','2','3'))
colors_list <- as.list(as.character(colors$id))
names(colors_list) <- colors$color
colors_list
答案 3 :(得分:0)
尝试一下。看起来很像MKBakker的解决方案。我添加了as.integer()
,因此结果如您所描述:
colorlist <- as.list(as.integer(colors$id))
names(colorlist) <- colors$color