Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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
String 按列将R中的向量转换为数据帧_String_R_Vector_Dataframe_Multiple Columns - Fatal编程技术网

String 按列将R中的向量转换为数据帧

String 按列将R中的向量转换为数据帧,string,r,vector,dataframe,multiple-columns,String,R,Vector,Dataframe,Multiple Columns,我想用每行中的字符串和分隔一个字符串中元素的空格来转换此向量: > v.input_red [1] "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 " [2] "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 2

我想用每行中的字符串和分隔一个字符串中元素的空格来转换此向量:

> v.input_red 
[1] "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "
[2] "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "
[3] "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "
到每个元素都有一列的数据帧。但我不太确定如何从字符串中提取元素。我想,最好的办法是以某种方式将整个事情一次转化

所需结果数据帧(手动创建):

提前谢谢! Matthias

假设文件是保存在系统上的文件名:

writeLines(v.input_red, file)
data <- read.table(file)
writeLines(v.input\u red,文件)

数据这是您想要的解决方案吗

s1 <- "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "
s2 <- "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "
s3 <- "pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 "

df <- t(data.frame(strsplit(s1, " "),strsplit(s2, " "),strsplit(s3, " ")))
row.names(df) <- c("s1", "s2", "s3")

s1很长一段时间以来,
read.table
和family都有一个
text
参数,可以直接从字符向量中读取。不需要先将对象写入文件

您的示例数据

v.input_red <- c("pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ",
"pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ",
"pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ")

太好了,这就是我想要的。谢谢!!很好,不知道关于文字的争论!这是更好的答案。
v.input_red <- c("pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ",
"pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ",
"pm 0 100 2.1 59 70 15.5 14.8 31 984 32 0 56 55 0 0 0 0 0 0 -60 -260 0 0 6 0 0 0 0 0 20 8 2ff 0 249 0 0 ")
read.table(text = v.input_red, header = FALSE)
#   V1 V2  V3  V4 V5 V6   V7   V8 V9 V10 V11 V12 V13 V14 V15 V16 V17
# 1 pm  0 100 2.1 59 70 15.5 14.8 31 984  32   0  56  55   0   0   0
# 2 pm  0 100 2.1 59 70 15.5 14.8 31 984  32   0  56  55   0   0   0
# 3 pm  0 100 2.1 59 70 15.5 14.8 31 984  32   0  56  55   0   0   0
#   V18 V19 V20 V21  V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 V33
# 1   0   0   0 -60 -260   0   0   6   0   0   0   0   0  20   8 2ff
# 2   0   0   0 -60 -260   0   0   6   0   0   0   0   0  20   8 2ff
# 3   0   0   0 -60 -260   0   0   6   0   0   0   0   0  20   8 2ff
#   V34 V35 V36 V37
# 1   0 249   0   0
# 2   0 249   0   0
# 3   0 249   0   0