2017-11-28 16 views
1

I는 다음과 같습니다 dataframes의 목록을 가지고 :추출 부분과 dataframe 목록에 추가

enter image description here

이 같은 파일 이름이 있습니다

testlist 
"Folder1/AT0ILL10000700500dymax.1-1-1990.31-12-2011"  
"Folder1/CH0001A0000700100dymax.1-1-1992.31-12-2007" 
"Folder1/CH0005A0000700500dymax.1-1-1992.31-12-2011" 

내가 읽은 이 명령으로 데이터.

data_list = lapply(testlist, read.table) 

이제 파일 이름의 일부를 추출하여 V6으로 데이터 프레임에 추가하려고합니다. 이것들은 제가 추출하고자하는 부분입니다.

AT0ILL1 
CH0001A 
CH0005A 

그래서이는 9-15 글자 것, 첫 번째 dataframe에서 [1] 마지막 새 열 6 번 "AT0ILL1는"[[2]]은 "CH0001A"이 될 것입니다 포함됩니다 V6에서는 [[3]에서 "CH0005A"만.

내가 가진 하나 개의 파일로, 예를 들어 그것을 할 수 있습니다 :

substr(name, 9, 15) 

하지만 (실제로 나는 1000가에) 모든 파일을 함께 할 수있는 방법?

다음은 처음부터 내 테스트 프레임 워크의 코드입니다.

V1= c("20000608", "20000609", "20000610", "20000611", "20000612", "20000613") 
V2= seq(5, 30, length=6) 
V3= rep(c(-1,0,1), times=2) 
V4= seq(10, 60, length=6) 
V5= rep(c(1,-1,0), times=2) 

testframe1 = data.frame(V1, V2, V3, V4, V5) 

x1= c("20030608", "20100609", "20060610", "20040611", "20009612", "20002613") 
x2= seq(4, 80, length=6) 
x3= rep(c(0,-1,1), times=2) 
x4= seq(3, 60, length=6) 
x5= rep(c(-1,1,0), times=2) 

testframe2 = data.frame(V1=x1, V2=x2, V3=x3, V4=x4, V5=x5) 

a1= c("20030602", "20100606", "20060610", "20040511", "20007612", "20002624") 
a2= seq(7, 133, length=6) 
a3= rep(c(-1,0,1), times=2) 
a4= seq(9, 47, length=6) 
a5= rep(c(1,0,-1), times=2) 

testframe3 = data.frame(V1=a1, V2=a2, V3=a3, V4=a4, V5=a5) 

list = list(testframe1, testframe2, testframe3) 

답변

1

단순한 for 해결책은 무엇입니까?

# I assume that: 
# - testlist is a vector that contains filenames 
# - df.list is a list of dataframes (in the example named list) 
for(i in 1:3){ 
    df.list[[i]]$V6 <- substr(testlist[i], 9, 15) 
} 
+0

Ok! 감사! 그것은 쉬운 sooo이었다! 나는 데이터를 읽는 동안 그것을하고 싶었다 ... 훨씬 더 쉽게이 방법을 사용했다. 고마워요! – Essi