我有一个如下数据框:
# pingr::ping(...)
ping: bad linger time.
[,1] [,2] [,3]
github.com NA NA NA
stackoverflow.com NA NA NA
google.com NA NA NA
yahoo.com NA NA NA
cisco.com NA NA NA
time.apple.com NA NA NA
但是,要输入到函数(ComplexHeatmap)中,我需要一个如下列表:
# install.packages("speedtest")
Warning in install.packages :
package ‘speedtest’ is not available (for R version 3.5.1)
从此数据帧转换为这种格式的列表的最简单方法是什么?进行Create or replace PROCEDURE p_event_loc (Passed_variable in varchar)
IS
Cursor c1 is
select en, ln, pn
from Et, Rn, Ln2, Pt
where Rn.status = 1
and Pt.pid = Rn.pid
and Et.eid = Rn.eid
and Ln2.lid = Et.lid;
E_en Et.en%type;
L_ln Ln2.ln%type;
P_pn Pt.pn%type;
BEGIN
Open c1;
Loop
fetch c1 into E_en, L_ln, P_pn;
exit when c1%notfound;
dbms_output.put_line(Passed_variable|| ' is registered for ' || E_en
|| ' at ' || L_ln);
End loop;
Close c1;
END;
格式不正确。
谢谢! 杰克
答案 0 :(得分:2)
一种方法将涉及使用plyr
。我怀疑您可能还不止这两列,所以让
df <- data.frame(name = c("chr", "test"), ncol = c(2, 3), a = 1:2)
# name ncol a
# 1 chr 2 1
# 2 test 3 2
然后
dlply(df, .(name), function(r) as.list(r[-1]))
# $chr
# $chr$ncol
# [1] 2
#
# $chr$a
# [1] 1
#
#
# $test
# $test$ncol
# [1] 3
#
# $test$a
# [1] 2
#
#
# attr(,"split_type")
# [1] "data.frame"
# attr(,"split_labels")
# name
# 1 chr
# 2 test
答案 1 :(得分:1)
一个选项是split
中的base R
split(setNames(as.list(df$ncol), rep('ncol', nrow(df))), df$name)